欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

处理驱动器和文件夹

程序员文章站 2022-05-28 16:24:45
使用 filesystemobject (fso) 对象模式,可以有计划地处理驱动器和文件夹,就像在 windows 资源管理器中交互式地处理它们一样。可以复制和移动文件夹...
使用 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>");
}