ASP编程入门进阶(十六):FSO组件之驱动器操作
程序员文章站
2023-11-24 19:40:04
fso,正如ufo般令人激动、令人神往,当然更多的亦是让人欢喜让人忧。君不见某空间服务商广告:100mb空间只要60rmb/年,支持数据库,支持什么什么……一问不支持fso...
fso,正如ufo般令人激动、令人神往,当然更多的亦是让人欢喜让人忧。君不见某空间服务商广告:100mb空间只要60rmb/年,支持数据库,支持什么什么……一问不支持fso,立马泄气。那fso究竟是什么东西,它的力量又是如何巨大,其操作的原理又是怎的怎的呢?这次来个彻底的理解。
首先,fso是filesystemobject的简称。当然也就是我们的俗称fso组件了,该组件可以用来处理驱动器、文件夹以及文件。
它可以检测并显示出系统驱动器的信息分配情况;还能够创建、改变、移动和删除文件夹,并能探测一些给定的文件夹是否存在,若存在,还能提取出该文件夹的信息,如名称、被创建或最后一次修改的日期,等等。fso还使得对文件的处理变得很容易。
一、fso.getdrive
正如其它组件的建立一样,fso的引用也必须建立连接。
注意createobject的内部再也不是mswc了,而是scripting。
那下面就可以通过fso来处理驱动器了。比如fso.getdrivename提取驱动器名,fso.getdrive同样提取标准驱动器名。比如:
1,fso.asp
你会发现getdrivename("d:")就是“d:”,而getdrive("d:")则为标准的“d:”,所以我们一般这样写fso.getdrive(fso.getdrivename(drvpath))来提取某个具体的驱动盘。
二、drv.getinfo
上面已经把某个特定的驱动器提取了,那接着是不是提取该驱动盘的具体信息。
2,drv.asp
以上只是提取的d盘驱动器的信息,来个通用的函数,继续分别测试自己的驱动吧。
3,drvinfo.asp
其中的drv.totalsize和drv.freespace返回的是字节数,我们可以用formatnumber()函数处理下。比如formatnumber(drive.totalsize/1024,0)得到一眼就知磁盘多少g的值。
还有一个文件类型:drv.drivetype最多的时候是显示数值“2”,其实“2”就表示的“硬盘驱动器”,“1”表示“软盘驱动器”,“4”表示“光盘驱动器”……
下面就用一个程序遍历显示自己机器上所有驱动器的信息
4,showall.asp
恩,是不是很神气?那你可以对自己的机器调试,然后上传到自己的空间去调试,你会发现服务商会你进行了些设置:)
当然更神的还在后面面,比如对文件夹,对文件的操作(包括添加、修改和删除)。ps:你对驱动器是不能轻易添加删除的:)
首先,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:")%><br> <%=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%><br> 该盘的剩余空间大小:<%=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 & "<br>" s = s & "总计空间:" & drv.totalsize & "<br>" s = s & "剩余空间:" & drv.freespace & "<br>" s = s & "文件类型:" & drv.drivetype & "<br>" s = s & "文件系统:" & drv.filesystem response.write s end function %> <% on error resume next whatpath=request.form("path") if whatpath<>"" then showdriveinfo(whatpath) end if%> <form action="drvinfo.asp" method="post"> <input name="path"> <input type="submit"> </form> |
其中的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") %> <table border=1 width="100%"> <tr> <td>盘符</td> <td>类型</td> <td>卷标</td> <td>总计大小</td> <td>可用空间</td> <td>文件系统</td> <td>序列号</td> <td>是否可用</td> <td>路径</td> </tr> <% on error resume next for each drv in fso.drives response.write "<tr>" response.write "<td>" & drv.driveletter & "</td>" response.write "<td>" & tran(drv.drivetype) & "</td>" response.write "<td>" & drv.volumename & "</td>" response.write "<td>" & formatnumber(drv.totalsize / 1024, 0)& "</td>" response.write "<td>" & formatnumber(drv.availablespace / 1024, 0) & "</td>" response.write "<td>" & drv.filesystem & "</td>" response.write "<td>" & drv.serialnumber & "</td>" response.write "<td>" & drv.isready & "</td>" response.write "<td>" & drv.path & "</td>" response.write "</tr>" next set fs=nothing %> </table> |
恩,是不是很神气?那你可以对自己的机器调试,然后上传到自己的空间去调试,你会发现服务商会你进行了些设置:)
当然更神的还在后面面,比如对文件夹,对文件的操作(包括添加、修改和删除)。ps:你对驱动器是不能轻易添加删除的:)