使用 filesystemobject (fso) 对象模式,可以有计划地处理驱动器和文件夹,就像在 windows 资源管理器中交互式地处理它们一样。可以复制和移动文件夹,获取有关驱动器和文件夹的信息,等等。
获取有关驱动器的信息
可以用 drive 对象来获得有关各种驱动器的信息,这些驱动器是实物地或通过网络连接到系统上的。它的属性可以用来获得下面的信息内容:
- 驱动器的总容量,以字节为单位(totalsize 属性)
- 驱动器的可用空间是多少,以字节为单位(availablespace 或 freespace 属性)
- 哪个号被赋给了该驱动器(driveletter 属性)
- 驱动器的类型是什么,如可移动的、固定的、网络的、cd-rom 或 ram 磁盘(drivetype 属性)
- 驱动器的序列号(serialnumber 属性)
- 驱动器使用的文件系统类型,如 fat、fat32、ntfs 等等(filesystem 属性)
- 驱动器是否可以使用(isready 属性)
- 共享和/或卷的名字(sharename 和 volumename 属性)
- 驱动器的路径或根文件夹(path 和 rootfolder 属性)
请考察 示例代码,来领会如何在 filesystemobject 中使用这些属性。
drive 对象的用法示例
使用 drive 对象来收集有关驱动器的信息。在下面的代码中,没有对实际的 drive 对象的引用;相反,使用 getdrive 方法来获得现有 drive 对象的引用(在这个例子中就是 drv)。
下面示例示范了如何在 vbscript 中使用 drive 对象:
sub showdriveinfo(drvpath)dim fso, drv, sset fso = createobject("scripting.filesystemobject")set drv = fso.getdrive(fso.getdrivename(drvpath))s = "drive " & ucase(drvpath) & " - "s = s & drv.volumename & "<br>"s = s & "total space: " & formatnumber(drv.totalsize / 1024, 0)s = s & " kb" & "<br>"s = s & "free space: " & formatnumber(drv.freespace / 1024, 0)s = s & " kb" & "<br>"response.write send sub
下面的代码说明在 jscript 中实现同样的功能:
function showdriveinfo1(drvpath){var fso, drv, s ="";fso = new activexobject("scripting.filesystemobject");drv = fso.getdrive(fso.getdrivename(drvpath));s += "drive " + drvpath.touppercase()+ " - ";s += drv.volumename + "<br>";s += "total space: " + drv.totalsize / 1024;s += " kb" + "<br>";s += "free space: " + drv.freespace / 1024;s += " kb" + "<br>";response.write(s);}
处理文件夹
在下面的表中,描述了普通的文件夹任务和执行它们的方法。
| 任务 | 方法 |
|---|---|
| 创建文件夹。 | filesystemobject.createfolder |
| 删除文件夹。 | folder.delete 或 filesystemobject.deletefolder |
| 移动文件夹。 | folder.move 或 filesystemobject.movefolder |
| 复制文件夹。 | folder.copy 或 filesystemobject.copyfolder |
| 检索文件夹的名字。 | folder.name |
| 如果文件夹在驱动器上存在,则找出它。 | filesystemobject.folderexists |
| 获得现有 folder 对象的实例。 | filesystemobject.getfolder |
| 找出文件夹的父文件夹名。 | filesystemobject.getparentfoldername |
| 找出系统文件夹的路径。 | filesystemobject.getspecialfolder |
请考察示例代码,来看看在 filesystemobject 中使用了多少种这些的方法和属性。
下面的示例示范了如何在 vbscript 中使用 folder 和 filesystemobject 对象,来操作文件夹和获得有关它们的信息:
sub showfolderinfo()dim fso, fldr, s'获得filesystemobject的实例。set fso = createobject("scripting.filesystemobject")'获得drive对象。set fldr = fso.getfolder("c:")'打印父文件夹名字。response.write "parent folder name is: " & fldr & "<br>"'打印驱动器名字。response.write "contained on drive " & fldr.drive & "<br>"'打印根文件名。if fldr.isrootfolder = true thenresponse.write "this is the root folder." & ""<br>"<br>"elseresponse.write "this folder isn't a root folder." & "<br><br>"end if'用filesystemobject对象创建新的文件夹。fso.createfolder ("c:/bogus")response.write "created folder c:/bogus" & "<br>"'打印文件夹的基本名字。response.write "basename = " & fso.getbasename("c:/bogus") & "<br>"'删除新创建的文件夹。fso.deletefolder ("c:/bogus")response.write "deleted folder c:/bogus" & "<br>"end sub
下面的示例显示如何在 jscript 中使用 folder 和 filesystemobject 对象:
function showfolderinfo(){var fso, fldr, s = "";//获得filesystemobject的实例。fso = new activexobject("scripting.filesystemobject");//获得drive对象。fldr = fso.getfolder("c:");//打印父文件夹名。response.write("parent folder name is: " + fldr + "<br>");//打印驱动器名字。response.write("contained on drive " + fldr.drive + "<br>");//打印根文件名。if (fldr.isrootfolder)response.write("this is the root folder.");elseresponse.write("this folder isn't a root folder.");response.write("<br><br>");//用filesystemobject对象创建新的文件夹。fso.createfolder ("c://bogus");response.write("created folder c://bogus" + "<br>");//打印文件夹的基本名。response.write("basename = " + fso.getbasename("c://bogus") + "<br>");//删除新创建的文件夹。fso.deletefolder ("c://bogus");response.write("deleted folder c://bogus" + "<br>");}
闽公网安备 35060202000074号