VBScript FileSystemObject对象

FileSystemObject 对象的作用:提供对计算机文件系统的访问,它允许我们在代码内操作文本文件、文件夹及驱动器。
FileSystemObject 对象提供一个属性和一系列方法,可用它们来操纵 FileSystemObject 对象实现的一些从属对象。

    ‘如下脚本就可以获得FileSystemObject的Drivers属性
    Set objFSO = CreateObject ("Scripting.FileSystemObject")

FileSystemObject对象属性

属性 说明
Drivers 返回本地计算机可用的驱动器列表
FileSystemObject对象方法
属性 说明
Drivers 返回本地计算机可用的驱动器列表
Drivers属性
方法 说明
AvailableSpace 考虑了帐户定额和/或其他限制,返回驱动器上对于该用户可用的空间的大小
DriveLetter 返回驱动器的字母
DriveType 返回驱动器的类型。返回值可以是 Unknown(0)、Removeable(1)、Fixed(2)、Network(3)、CDRom(4) 和 RamDisk(5)。然而需要注意的是当前版本的 scrrun.dll 不支持预定义常数 Network,必须使用十进制 3 来代替
FileSystem 返回驱动器文件系统的类型。返回值包括“FAT”、“NTFS”和“CDFS”
FreeSpace 返回驱动器上可用剩余空间的总量
IsReady 返回一个布尔值表明驱动器是否已准备好
Path 返回一个由驱动器字母和冒号组成的驱动器路径,即“C:”
RootFolder 返回代表的驱动器根目录文件夹的 Folder 对象
SerialNumber 返回一个用于识别磁盘卷的十进制的序列号
ShareName 如果是一个网络驱动器,返回该驱动器的网络共享名
TotalSize 返回驱动器的总容量(以字节为单位)
VolumeName 设定或返回本地驱动器卷名
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set colDrives = objFSO.Drives

    msg=""
    For Each objDrive in colDrives

        If objDrive.IsReady Then
         msg = msg & "驱动器名称:" & objDrive.DriveLetter & chr(10)
         msg= msg & "驱动器文件类型:" & objDrive.FileSystem & chr(10)
         msg = msg & "驱动器总容量:" & int(objDrive.TotalSize/(1024*1024*1024)) & "G " & chr(10)
         msg = msg & "可用空间:" & int(objDrive.FreeSpace/(1024*1024*1024)) & "G" & chr(10) & chr(10)
        End If

    Next

    MSGBOX  msg

备注:在系统上运行这段程序以前有一点要注意。如果在 A 驱动器里没有磁盘,或 CD-ROM 驱动器里没有光盘,将得到一个错误提示:“Disk Not Ready”。除了 DriveLetter 属性和 DriveType 属性外,在使用其他属性和方法前,通过检查每个驱动器的 IsReady 属性,可以保护该页面。

磁盘使用情况

FileSystemObject 对象的方法

1.与驱动器有关的方法

方法 说明
DriveExists(drivespec) 如果在 drivespec 中指定的驱动器存在,则返回 True,否则返回 False。drivespec 参数可以是一个驱动器字母,或者是文件、文件夹的完整绝对路径
GetDrive(drivespec) 返回 drivespec 指定的驱动器所对应的Drive对象。drivespec 可以包含冒号、路径分隔符或者是网络共享名,即:“C”、“C:”、“C:”及“/machinesharename”
GetDriveName(drivespec) 用字符串返回 drivespec 指定的驱动器的名称。drivespec 参数必须是文件或文件夹的绝对路径,或者仅仅是驱动器字母,例如:“c:”或“c”

DriveExists,由于本人电脑中没有X盘符,故返回FALSE

 Set objFSO = CreateObject("Scripting.FileSystemObject")
 MSGBOX objFSO.DriveExists("x:") '返回FALSE
 MSGBOX objFSO.GetDrive("C")  '返回C:
 MSGBOX objFSO.GetDriveName("C:") '返回C:

另一种是检查电脑中所有的盘符

Set objFSO = CreateObject("Scripting.FileSystemObject")

msg=""
For intCode = 65 To 90 'ANSI codes for 'A' to 'Z'
    strLetter = Chr(intCode) 'Chr:返回与指定的 ANSI 字符代码相对应的字符。
    If objFSO.DriveExists(strLetter) Then '判断相应的盘符是否存在,如存在输出
     msg = msg & strLetter &" "
    End If
Next

MsgBox msg ‘显示  C D E F G H Z

盘符

2. 与文件夹有关的方法及属性

方法 说明
BuildPath(path,name) 在已有的路径 path 上增添名字为 name 的文件或文件夹,如果需要,则增添路径分隔符’ ‘
CopyFolder(source,destination,overwrite) 从指定的源文件夹 source(可以包含通配符)中复制一个或多个文件夹到指定的目标文件夹 destination,包含了源文件夹中的所有文件。如果 source 包含通配符或 destination 末尾是路径分隔符(‘’),那么认为 destination 是要放置源文件夹的拷贝的文件夹。否则的话,认为 destination 是要创建的新文件夹的路径名。如果 destination 文件夹已经存在且 overwrite 参数设置为 False,将产生错误,缺省的 overwrite 参数是True
CreateFolder(foldername) 创建一个路径名为 foldername 的文件夹。如果 foldername 已经存在将产生错误
DeleteFolder(folderspec,force) 删除由 folderspec 指定的一个或多个文件夹(可以在路径的最后部分包含通过配符)及文件夹中的所有内容。如果可选的 force 参数设置为 true,那么即使文件夹包含的文件具有只读属性,也将删除该文件夹。缺省的 force 参数是 False
FolderExists(folderspec) 如果 folderspec 指定的文件夹存在则返回 True,否则返回 False。folderspec 参数可以包含文件夹的绝对或相对路径,或者仅仅是当前文件夹中看到的文件夹名
GetAbsolutePathName(pathspec) 返回明确指定文件夹的路径,其中要考虑到当前文件夹的路径。例如,如果当前文件夹是“c:docssales”,而pathspec是“jan”,返回的字符是“c:docssalesjan”。通配符、”..”和”/”路径操作符都是可以接受的
GetFolder(folderspec) 返回 folderspec 指定的文件夹对应的 Folder 对象。folderspec 可以是文件夹的相对的或绝对的路径
GetParentFolderName(pathspec) 返回pathspec 文件或文件夹的上一级文件夹。不检验该文件夹是否存在
GetSpecialfolder(folderspec) 返回一个特定的 Windows 文件夹相对应的 Folder 对象。参数 folderspec 的允许值是WindowsFolder(0)、SystemFolder(1) 和 TemporaryFolder(2)
MoveFolder(source,destination) 将 source 指定的一个或多个文件夹移动到 destination 指定的文件夹。在 source 里可以包含通配符,但在 destination 中不行。如果 source 包含通配符或 destination 末尾是路径分隔符(‘’),则认为 destination 是要放置源文件夹的文件夹,否则认为它是一个新文件夹的完整路径和名字。如果目的文件夹 destination 已经存在则产生错误
' 创建FileSystemObject对象
 Set objfso = createobject("scripting.FileSystemObject")

' 将D:/test下所有的内容复制到c:/123
objfso.CopyFolder "D:/test","c:/123"

’判断文件夹是否存在
 If Not objfso.FolderExists(""c:/new folder") Then
        objset = objfso.CreateFolder(strpath) '不存在则创建
    else
        objset = objfso.DeleteFolder(strpath) ’    如果存在,则删除掉
 End If

 objfso.GetParentFolderName("C:/WINDOWS/addins") ‘返回c:/windows

Folder对象

Folder对象可以通过 FileSystemObject对象的GetFolder方法获取

  Set fso = CreateObject("Scripting.FileSystemObject")
  '使用GetFolder方法来返回Folder对象
  Set objset = fso.getFolder("c:/123")

Folder 对象提供一组可用于复制、删除和移动当前文件夹的方法。这些方法的运行方式与 FileSystemObject 对象的CopyFolder、DeleFolder 和 MoveFolder 方法相同,但这些方法不要求 source 参数,因为源文件就是这个文件夹。

备注:CopyFolder、DeleFolder等方法是基于FileSystemObject 对象的;而下面的Copy、Delete等方法是基于FileSystemObject对象下的Folder对象,他们实现的功能是类似的。

Folder对象所提供的方法
方法 说明
Copy(destination,overwrite) 将这个文件夹及所有的内容复制到 destination 指定的文件夹。如果 destination 的末尾是路径分隔符(‘’),那么认为 destination 是放置拷贝文件夹的一个文件夹。否则认为 destination 是要创建的新文件夹的路径和名字。如果目标文件夹已经存在且 overwrite 参数设置为 False,将产生错误,缺省的 overwrite 参数是 True
Delete(force) 删除文件夹及里面的所有内容。如果可选的 force 参数设置为 True,即使文件夹设置为只读或含有只读的文件,也将删除该文件夹。缺省的 force 是 False
Move(destination) 将文件夹及里面所有的内容移动到 destination 指定的文件夹。如果 destination 的末尾是路径分隔符(‘’),那么认为 destination 是放置移动文件夹的一个文件夹。否则认为 destination 是一个新的文件夹的路径和名字。如果目标文件夹已经存在,则出错
CreateTextFile(filename,overwrite,unicode) 用指定的文件名在文件夹内创建一个新的文件,并且返回一个相应的TextStream 对象。如果可选的 overwrite参数设置为True,将覆盖任何已有的同名文件。缺省的overwrite 参数是 False。如果可选的 unicode 参数设置为 True,文件的内容将存储为 unicode 文本。缺省的 unicode 是 False
  Set fso = CreateObject("Scripting.FileSystemObject")
  '使用GetFolder方法来返回Folder对象
  Set objset = fso.getFolder("c:/123")
  ‘删除 objset.Delete(True) 
  ’将其内容移动别的文件夹下 objset.Move("C:/124")
  ‘创建一件文件 objset.CreateTextFile "myClass2.txt",true
Folder对象所提供的属性:
方法 说明
Attributes 返回文件夹的属性。可以是下列值中的一个或其组合:Normal(0)、ReadOnly(1)、Hidden(2)、System(4)、Volume(名称)(8)、Directory(文件夹)(16)、Archive(32)、Alias(64) 和 Compressed(128)。例如,一个隐藏的只读文件,Attributes 的值为 3
DateCreated 返回该文件夹的创建日期和时间
DateLastAccessed 返回最后一次访问该文件夹的日期和时间
DateLastModified 返回最后一次修改该文件夹的日期和时间
Drive 返回该文件夹所在的驱动器的驱动器字母
Files 返回 Folder 对象包含的 Files 集合,表示该文件夹内所有的文件
IsRootFolder 返回一个布尔值说明该文件夹是否是当前驱动器的根文件夹
Name 设定或返回文件夹的名字
ParentFolder 返回该文件夹的父文件夹对应的 Folder 对象
Path 返回文件夹的绝对路径,使用相应的长文件名
ShortName 返回 DOS 风格的 8.3 形式的文件夹名
ShortPath 返回 DOS 风格的 8.3 形式的文件夹的绝对路径
Size 返回包含在该文件夹里所有文件和子文件夹的大小
SubFolers 返回该文件夹内包含的所有子文件夹对应的 Folders 集合,包括隐藏文件夹和系统文件夹
Type 如果可能,返回一个文件夹的说明字符串(例如,“Recycle Bin”)
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!