ASP编程入门进阶(十六):FSO组件之驱动器操作

FSO,正如UFO般令人激动、令人神往,当然更多的亦是让人欢喜让人忧。君不见某空间服务商广告:100MB空间只要60RMB/年,支持数据库,支持什么什么……一问不支持FSO,立马泄气。那FSO究竟是什么东西,它的力量又是如何巨大,其操作的原理又是怎的怎的呢?这次来个彻底的理解。

首先,FSO是FileSystemObject的简称。当然也就是我们的俗称FSO组件了,该组件可以用来处理驱动器、文件夹以及文件。

它可以检测并显示出系统驱动器的信息分配情况;还能够创建、改变、移动和删除文件夹,并能探测一些给定的文件夹是否存在,若存在,还能提取出该文件夹的信息,如名称、被创建或最后一次修改的日期,等等。FSO还使得对文件的处理变得很容易。

一、fso.GetDrive

正如其它组件的建立一样,FSO的引用也必须建立连接。


Set fso=Server.CreateObject("Scripting.FileSystemObject")


注意CreateObject的内部再也不是MSWC了,而是Scripting。
那下面就可以通过fso来处理驱动器了。比如fso.GetDriveName提取驱动器名,fso.GetDrive同样提取标准驱动器名。比如:

1,fso.asp


<%Set fso=Server.CreateObject("Scripting.FileSystemObject")%>
<%=fso.GetDriveName("d:")%>

<%=fso.GetDrive("d:")%>


你会发现GetDriveName("d:")就是“d:”,而GetDrive("d:")则为标准的“D:”,所以我们一般这样写 fso.GetDrive(fso.GetDriveName(drvPath))来提取某个具体的驱动盘。

二、drv.GetInfo
上面已经把某个特定的驱动器提取了,那接着是不是提取该驱动盘的具体信息。

2,drv.asp


<%
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set drv=fso.GetDrive(fso.GetDriveName("d:"))
%>
该盘的空间大小:<%=drv.TotalSize%>

该盘的剩余空间大小:<%=drv.FreeSpace%>


以上只是提取的D盘驱动器的信息,来个通用的函数,继续分别测试自己的驱动吧。

3,drvinfo.asp


<%
Function ShowDriveInfo(drvPath)
Dim fso, drv, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set drv = fso.GetDrive(fso.GetDriveName(drvPath))
s = "驱动盘" & drv & "的卷标是:"
s = s & drv.VolumeName & "
"
s = s & "总计空间:" & drv.TotalSize & "
"
s = s & "剩余空间:" & drv.FreeSpace & "
"
s = s & "文件类型:" & drv.DriveType & "
"
s = s & "文件系统:" & drv.FileSystem
Response.Write s
End Function
%>
<%
on error resume next
whatpath=request.form("path")
if whatpath<>"" then
ShowDriveInfo(whatpath)
end if%>







其中的drv.TotalSize和drv.FreeSpace返回的是字节数,我们可以用FormatNumber()函数处理下。比如FormatNumber(Drive.TotalSize/1024,0)得到一眼就知磁盘多少G的值。

还有一个文件类型:drv.DriveType最多的时候是显示数值“2”,其实“2”就表示的“硬盘驱动器”,“1”表示“软盘驱动器”,“4”表示“光盘驱动器”……

下面就用一个程序遍历显示自己机器上所有驱动器的信息

4,showall.asp


<%
Function tran(Driver)
Select Case Driver
Case 0: tran="设备无法识别"
Case 1: tran="软盘驱动器"
Case 2: tran="硬盘驱动器"
Case 3: tran="网络硬盘驱动器"
Case 4: tran="光盘驱动器"
Case 5: tran="RAM虚拟磁盘"
End Select
End Function
set fso=Server.CreateObject("Scripting.FileSystemObject")
%>













<%
on error resume next
For each drv in fso.Drives
Response.Write ""
Response.Write ""
Response.write ""
Response.write ""
Response.write ""
Response.write ""
Response.write ""
Response.write ""
Response.write ""
Response.write ""
Response.Write ""
Next
set fs=nothing
%>
盘符类型卷标总计大小可用空间文件系统序列号是否可用路径
" & drv.DriveLetter & "" & tran(drv.DriveType) & "" & drv.VolumeName & "" & FormatNumber(drv.TotalSize / 1024, 0)& "" & FormatNumber(drv.Availablespace / 1024, 0) & "" & drv.FileSystem & "" & drv.SerialNumber & "" & drv.IsReady & "" & drv.Path & "



http://www.cnbruce.com/code/showall.asp

恩,是不是很神气?那你可以对自己的机器调试,然后上传到自己的空间去调试,你会发现服务商会你进行了些设置:)
当然更神的还在后面面,比如对文件夹,对文件的操作(包括添加、修改和删除)。ps:你对驱动器是不能轻易添加删除的:)

你可能感兴趣的:(ASP编程入门进阶(十六):FSO组件之驱动器操作)