RSS
热门关键字:  虚拟主机技术  vps团购  discuz架构  虚拟主机团购  curl
当前位置 :| 团购首页>网站编程>ASP>

FSO组件操作实例

来源: 作者: 时间:2008-11-09 Tag: 点击:

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:")%>
<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 Functionset
 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>"Nextset fs=nothing%>
 </table>
  演示
  恩,是不是很神气?那你可以对自己的机器调试,然后上传到自己的空间去调试,你会发现服务商会你进行了些设置:)
  当然更神的还在后面面,比如对文件夹,对文件的操作(包括添加、修改和删除)。
  ps:你对驱动器是不能轻易添加删除的:)

 


操作完驱动器,接着就是来操作文件夹了。其中包括:提取文件夹信息、创建文件夹、删除文件夹、复制文件夹、移动文件夹等。下面就具体来看。
  一、fso.GetFolder
  一看就明白,是提取文件夹了。那具体是提取哪个文件夹呢?后面肯定要跟一个文件夹的路径。提取出来了再来显示该文件夹相关信息呢?是不是有要具体提取下去。所以,看程序:
  1,getfldr.asp

<%Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.GetFolder("c:\Program Files")
Response.Write "父文件夹名字是:" & fldr & "<br>"
If fldr.IsRootFolder = True Then 
Response.Write "该文件夹是一根文件夹" & "<br>"
Else 
Response.Write "该文件夹不是根文件夹" & "<br>" 
End If
Response.Write "驱动器名字是:" & fldr.Drive & "<br>"%>
  首先建立FSO组件的连接是必不可少的啦,然后Set fldr = fso.GetFolder("c:\Program Files")设定fldr对象被赋值,以作下面程序的引用。
  fldr.IsRootFolder即为判断该文件夹是否为一根文件夹,值为布尔值(true or false);fldr.Drive则显示该文件夹所在的驱动器号了。


 


    由于各种原因,我们无法获知[FSO组件操作实例]原创作者,如侵犯了您的版权,请您及时联系我们!
上一篇:ADO判断SQL语句执行返回影响行
下一篇:没有了
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册