当前位置:首页 > ASP教程 > FSO专栏

处理驱动器和文件夹

使用 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, s
set 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 s
end 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 then
response.write "this is the root folder." & ""<br>"<br>"
else
response.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.");
else
response.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>");
}


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!