表1 FileSystemObject 對(duì)象的屬性和說明 |
|
屬性 |
說明 |
Drivers |
返回本地計(jì)算機(jī)可用的驅(qū)動(dòng)器列表 |
‘如下腳本就可以獲得FileSystemObject的Drivers屬性 Set objFSO = CreateObject ("Scripting.FileSystemObject") Set colDrivers = objFSO.Drivers
正如已經(jīng)看到的,F(xiàn)ileSystemObject 對(duì)象包含一個(gè)屬性——Drives,它返回一個(gè)包括本地計(jì)算機(jī)上所有可用驅(qū)動(dòng)器的集合。
Drives 集合里的每個(gè)條目是一個(gè) Drive 對(duì)象。Drive 對(duì)象的屬性如表2所示:
表2 Drive 對(duì)象的屬性及說明 |
|
方法 |
說明 |
AvailableSpave |
考慮了帳戶定額和/或其他限制,返回驅(qū)動(dòng)器上對(duì)于該用戶可用的空間的大小 |
DriveLetter |
返回驅(qū)動(dòng)器的字母 |
DriveType |
返回驅(qū)動(dòng)器的類型。返回值可以是 Unknown(0)、Removeable(1)、Fixed(2)、Network(3)、CDRom(4) 和 RamDisk(5)。然而需要注意的是當(dāng)前版本的 scrrun.dll 不支持預(yù)定義常數(shù) Network,必須使用十進(jìn)制 3 來代替 |
FileSystem |
返回驅(qū)動(dòng)器文件系統(tǒng)的類型。返回值包括“FAT”、“NTFS”和“CDFS” |
FreeSpace |
返回驅(qū)動(dòng)器上可用剩余空間的總量 |
IsReady |
返回一個(gè)布爾值表明驅(qū)動(dòng)器是否已準(zhǔn)備好 |
Path |
返回一個(gè)由驅(qū)動(dòng)器字母和冒號(hào)組成的驅(qū)動(dòng)器路徑,即“C:” |
RootFolder |
返回代表的驅(qū)動(dòng)器根目錄文件夾的 Folder 對(duì)象 |
SerialNumber |
返回一個(gè)用于識(shí)別磁盤卷的十進(jìn)制的序列號(hào) |
ShareName |
如果是一個(gè)網(wǎng)絡(luò)驅(qū)動(dòng)器,返回該驅(qū)動(dòng)器的網(wǎng)絡(luò)共享名 |
TotalSize |
返回驅(qū)動(dòng)器的總?cè)萘浚ㄒ宰止?jié)為單位) |
VolumeName |
設(shè)定或返回本地驅(qū)動(dòng)器卷名 |
因此,通過使用 Drives 集合里的 Drive 對(duì)象,可以在服務(wù)器上產(chǎn)生一個(gè)驅(qū)動(dòng)器列表,與通過檢查每個(gè)可能的驅(qū)動(dòng)器字母來判別驅(qū)動(dòng)器是否存在的方法相比,效率更高。我們也可以得到關(guān)于該驅(qū)動(dòng)器的信息。
示例:
' 創(chuàng)建FileSystemObject對(duì)象 Set objFSO = CreateObject("Scripting.FileSystemObject") ' 創(chuàng)建Drives集合,并賦值給colDrives Set colDrives = objFSO.Drives ' 遍歷Drives集合 For Each objDrive in colDrives '判斷驅(qū)動(dòng)器是否已準(zhǔn)備好 If objDrive.IsReady Then msg = "驅(qū)動(dòng)器的名稱為:" objDrive.DriveLetter " " msg =msg "驅(qū)動(dòng)器文件系統(tǒng)的類型:" objDrive.FileSystem " " msg = msg "驅(qū)動(dòng)器的總?cè)萘浚? int(objDrive.TotalSize/(1024*1024*1024)) "G " msg = msg "剩余空間的總量:" int(objDrive.FreeSpace/(1024*1024*1024)) "G " End If Next reporter.ReportEvent micDone ,"遍歷Drives集合",msg
備注:在系統(tǒng)上運(yùn)行這段程序以前有一點(diǎn)要注意。如果在 A 驅(qū)動(dòng)器里沒有磁盤,或 CD-ROM 驅(qū)動(dòng)器里沒有光盤,將得到一個(gè)錯(cuò)誤提示:“Disk Not Ready”。除了 DriveLetter 屬性和 DriveType 屬性外,在使用其他屬性和方法前,通過檢查每個(gè)驅(qū)動(dòng)器的 IsReady 屬性,可以保護(hù)該頁面。
二、FileSystemObject 對(duì)象的方法
1. 與驅(qū)動(dòng)器有關(guān)的方法
表3 與驅(qū)動(dòng)器有關(guān)的方法及說明 |
|
方法 |
說明 |
DriveExists(drivespec) |
如果在 drivespec 中指定的驅(qū)動(dòng)器存在,則返回 True,否則返回 False。drivespec 參數(shù)可以是一個(gè)驅(qū)動(dòng)器字母,或者是文件、文件夾的完整絕對(duì)路徑 |
GetDrive(drivespec) |
返回 drivespec 指定的驅(qū)動(dòng)器所對(duì)應(yīng)的Drive對(duì)象。drivespec 可以包含冒號(hào)、路徑分隔符或者是網(wǎng)絡(luò)共享名,即:“C”、“C:”、“C:”及“/machinesharename” |
GetDriveName(drivespec) |
用字符串返回 drivespec 指定的驅(qū)動(dòng)器的名稱。drivespec 參數(shù)必須是文件或文件夾的絕對(duì)路徑,或者僅僅是驅(qū)動(dòng)器字母,例如:“c:”或“c” |
DriveExists的使用
方法名:DriveExists(drivespec)
說明:如果在 drivespec 中指定的驅(qū)動(dòng)器存在,則返回 True,否則返回 False。drivespec 參數(shù)可以是一個(gè)驅(qū)動(dòng)器字母,或者是文件、文件夾的完整絕對(duì)路徑
示例:
' 創(chuàng)建FileSystemObject對(duì)象 Set objFSO = CreateObject ("Scripting.FileSystemObject") For intCode = 65 To 90 'ANSI codes for 'A' to 'Z' strLetter = Chr(intCode) 'Chr:返回與指定的 ANSI 字符代碼相對(duì)應(yīng)的字符。 If objFSO.DriveExists(strLetter) Then '判斷相應(yīng)的盤符是否存在,如存在輸出 Reporter.ReportEvent micDone,"Show Drive”,” Found drive " strLetter End If Next
另外,如果已知要訪問的驅(qū)動(dòng)器、文件夾或文件。可以直接對(duì)其使用 GetDrive、GetFolder、GetSpecialFolder 和 GetFile 方法。
2. 與文件夾有關(guān)的方法及屬性
用FileSystemObject對(duì)象來操作文件夾的方法:
表4 與文件夾有關(guān)的方法及說明 |
|
方法 |
說明 |
BuildPath(path,name) |
在已有的路徑 path 上增添名字為 name 的文件或文件夾,如果需要,則增添路徑分隔符' ' |
CopyFolder(source,destination,overwrite) |
從指定的源文件夾 source(可以包含通配符)中復(fù)制一個(gè)或多個(gè)文件夾到指定的目標(biāo)文件夾 destination,包含了源文件夾中的所有文件。如果 source 包含通配符或 destination 末尾是路徑分隔符(‘'),那么認(rèn)為 destination 是要放置源文件夾的拷貝的文件夾。否則的話,認(rèn)為 destination 是要?jiǎng)?chuàng)建的新文件夾的路徑名。如果 destination 文件夾已經(jīng)存在且 overwrite 參數(shù)設(shè)置為 False,將產(chǎn)生錯(cuò)誤,缺省的 overwrite 參數(shù)是True |
CreateFolder(foldername) |
創(chuàng)建一個(gè)路徑名為 foldername 的文件夾。如果 foldername 已經(jīng)存在將產(chǎn)生錯(cuò)誤 |
DeleteFolder(folderspec,force) |
刪除由 folderspec 指定的一個(gè)或多個(gè)文件夾(可以在路徑的最后部分包含通過配符)及文件夾中的所有內(nèi)容。如果可選的 force 參數(shù)設(shè)置為 true,那么即使文件夾包含的文件具有只讀屬性,也將刪除該文件夾。缺省的 force 參數(shù)是 False |
FolderExists(folderspec) |
如果 folderspec 指定的文件夾存在則返回 True,否則返回 False。folderspec 參數(shù)可以包含文件夾的絕對(duì)或相對(duì)路徑,或者僅僅是當(dāng)前文件夾中看到的文件夾名 |
GetAbsolutePathName(pathspec) |
返回明確指定文件夾的路徑,其中要考慮到當(dāng)前文件夾的路徑。例如,如果當(dāng)前文件夾是“c:docssales”,而pathspec是“jan”,返回的字符是“c:docssalesjan”。通配符、”..”和”/”路徑操作符都是可以接受的 |
GetFolder(folderspec) |
返回 folderspec 指定的文件夾對(duì)應(yīng)的 Folder 對(duì)象。folderspec 可以是文件夾的相對(duì)的或絕對(duì)的路徑 |
GetParentFolderName(pathspec) |
返回pathspec 文件或文件夾的上一級(jí)文件夾。不檢驗(yàn)該文件夾是否存在 |
GetSpecialfolder(folderspec) |
返回一個(gè)特定的 Windows 文件夾相對(duì)應(yīng)的 Folder 對(duì)象。參數(shù) folderspec 的允許值是WindowsFolder(0)、SystemFolder(1) 和 TemporaryFolder(2) |
MoveFolder(source,destination) |
將 source 指定的一個(gè)或多個(gè)文件夾移動(dòng)到 destination 指定的文件夾。在 source 里可以包含通配符,但在 destination 中不行。如果 source 包含通配符或 destination 末尾是路徑分隔符(‘'),則認(rèn)為 destination 是要放置源文件夾的文件夾,否則認(rèn)為它是一個(gè)新文件夾的完整路徑和名字。如果目的文件夾 destination 已經(jīng)存在則產(chǎn)生錯(cuò)誤 |
CopyFolder的使用
方法名:CopyFolder(source,destination,overwrite)
說明:將文件夾從某位置遞歸復(fù)制到另一位置。詳細(xì)說明請(qǐng)查看表4。
示例:
' 創(chuàng)建FileSystemObject對(duì)象 Set objfso = createobject("scripting.FileSystemObject") ' 將D:/test下所有的內(nèi)容復(fù)制到c:/123 objfso.CopyFolder "D:/test","c:/123"
注:如果c:/123不存在,則QTP將自動(dòng)創(chuàng)建它
CreateFolder及DeleteFolder的使用
方法名:CreateFolder(foldername)/DeleteFolder(folderspec,force)
說明:創(chuàng)建/刪除一個(gè)路徑名為 foldername 的文件夾。詳細(xì)說明請(qǐng)查看表4。
示例:
' 創(chuàng)建FileSystemObject對(duì)象 Set objfso = createobject("scripting.FileSystemObject") ‘ 在c:/創(chuàng)建new folder文件夾,如果文件夾存在,則會(huì)出現(xiàn)錯(cuò)誤提示 objfso.CreateFolder("c:/new folder") ‘ 刪除c:/new folder文件夾 objfso.DeleteFolder("c:/new folder")
注:DeleteFolder無論文件夾是否包含內(nèi)容,都將刪除該文件夾
FolderExists的使用
方法名:FolderExist(folderspec)
說明:如果指定的文件夾存在,則返回 True;否則返回 False。詳細(xì)說明請(qǐng)查看表4。
示例:
Function hanshu(strpath) Dim objfso,objset ‘ 創(chuàng)建FileSystemObjec對(duì)象 Set objfso = CreateObject("Scripting.FileSystemObject") ‘ 判斷在指定的路徑中是否有 If Not objfso.FolderExists(strpath) Then objset = objfso.CreateFolder(strpath) else objset = objfso.DeleteFolder(strpath) End If hanshu = objset End Function hanshu("c:/new folder")
GetAbsolutePathName的使用
方法名:GetAbsolutePathName(pathspec)
說明:從提供的指定路徑中返回完整且含義明確的路徑。詳細(xì)說明請(qǐng)查看表4。
示例:
Dim objfso ‘創(chuàng)建FileSystemObject對(duì)象 Set objfso = createobject("Scripting.FileSystemObject") ‘返回當(dāng)前的目錄,下面兩條語句返回一樣的結(jié)果 msgbox (objfso.GetAbsolutePathName("")) msgbox (objfso.GetAbsolutePathName("C:"))
GetFolder的使用
方法名:GetFolder(folderspec)
說明:返回與指定的路徑中某文件夾相應(yīng)的 Folder 對(duì)象??梢愿鶕?jù)所返回的Folder 對(duì)象,再去訪問該Folder 對(duì)象所持有的屬性。
示例:
Dim objfso,objset '創(chuàng)建FileSystemObject對(duì)象 Set objfso = createobject("Scripting.FileSystemObject") '返回C:/testing的Folder的對(duì)象 Set objset = objfso.GetFolder("C:/testing") ' 根據(jù)所返回的Folder對(duì)象,去訪問其相關(guān)的屬性 reporter.ReportEvent micDone ,"Folder對(duì)象的相關(guān)屬性","文件夾創(chuàng)建的日期:" objset.DateCreated "; 文件夾所在的驅(qū)動(dòng):" objset.Drive "; 文件夾的名字:" objset.Name
注:關(guān)于Folder對(duì)象的屬性,將在下面會(huì)詳細(xì)介紹
GetParentFolderName的使用
方法名:GetParentFolderName(pathspec)
說明:返回字符串,該字符串包含指定的路徑中最后一個(gè)文件或文件夾的父文件夾。
示例:
Dim objfso '創(chuàng)建FileSystemObject對(duì)象 Set objfso = createobject("Scripting.filesystemobject") '使用GetParentFolderName方法來返回上一層文件夾 msgbox (objfso.GetParentFolderName("C:/WINDOWS/addins"))
GetSpecialFolder的使用
方法名:GetSpecialFolder(folderspec)
說明:返回指定的特殊文件夾。詳細(xì)說明請(qǐng)查看表4。
示例:
Dim fso,tempName Set fso = CreateObject("Scripting.FileSystemObject") 'GetSpecialFolder()中的參數(shù)2,返回一個(gè)名為Temp的臨時(shí)文件夾 Set tempName = fso.GetSpecialFolder(2) msgbox tempName
MoveFolder的使用
方法名:MoveFolder(source,destination)
說明:將一個(gè)或多個(gè)文件夾從某位置移動(dòng)到另一位置。詳細(xì)說明請(qǐng)查看表4。
示例:
Dim sourcepath,destination sourcepath = "C:/testing" destination = "C:/123" '調(diào)用MoveFolders方法 call MoveFolders(sourcepath,destination) Sub MoveFolders(sourcepath,destination) Dim fso '創(chuàng)建FileSystemObject對(duì)象 Set fso = CreateObject("Scripting.FileSystemObject") '使用MoveFolder方法,將testing文件夾的內(nèi)容移動(dòng)到123文件夾下 fso.MoveFolder sourcepath,destination End Sub
注:如果腳本在運(yùn)行前文件夾123已存在,則運(yùn)行是會(huì)發(fā)生錯(cuò)誤;在不同的磁盤下MoveFolder方法不能用
上面提到的Folder方法是基于FileSystemObject 對(duì)象的,現(xiàn)在我們來看看基于Folder對(duì)象的方法。
Folder對(duì)象所提供的方法
Folder 對(duì)象提供一組可用于復(fù)制、刪除和移動(dòng)當(dāng)前文件夾的方法。這些方法的運(yùn)行方式與 FileSystemObject 對(duì)象的CopyFolder、DeleFolder 和 MoveFolder 方法相同,但這些方法不要求 source 參數(shù),因?yàn)樵次募褪沁@個(gè)文件夾。
備注:CopyFolder、DeleFolder等方法是基于FileSystemObject 對(duì)象的;而下面的Copy、Delete等方法是基于FileSystemObject對(duì)象下的Folder對(duì)象,他們實(shí)現(xiàn)的功能是類似的。
表5 Folder 對(duì)象的方法及說明 |
|
方法 |
說明 |
Copy(destination,overwrite) |
將這個(gè)文件夾及所有的內(nèi)容復(fù)制到 destination 指定的文件夾。如果 destination 的末尾是路徑分隔符(‘'),那么認(rèn)為 destination 是放置拷貝文件夾的一個(gè)文件夾。否則認(rèn)為 destination 是要?jiǎng)?chuàng)建的新文件夾的路徑和名字。如果目標(biāo)文件夾已經(jīng)存在且 overwrite 參數(shù)設(shè)置為 False,將產(chǎn)生錯(cuò)誤,缺省的 overwrite 參數(shù)是 True |
Delete(force) |
刪除文件夾及里面的所有內(nèi)容。如果可選的 force 參數(shù)設(shè)置為 True,即使文件夾設(shè)置為只讀或含有只讀的文件,也將刪除該文件夾。缺省的 force 是 False |
Move(destination) |
將文件夾及里面所有的內(nèi)容移動(dòng)到 destination 指定的文件夾。如果 destination 的末尾是路徑分隔符(‘'),那么認(rèn)為 destination 是放置移動(dòng)文件夾的一個(gè)文件夾。否則認(rèn)為 destination 是一個(gè)新的文件夾的路徑和名字。如果目標(biāo)文件夾已經(jīng)存在,則出錯(cuò) |
CreateTextFile(filename,overwrite,unicode) |
用指定的文件名在文件夾內(nèi)創(chuàng)建一個(gè)新的文件,并且返回一個(gè)相應(yīng)的TextStream 對(duì)象。如果可選的 overwrite參數(shù)設(shè)置為True,將覆蓋任何已有的同名文件。缺省的overwrite 參數(shù)是 False。如果可選的 unicode 參數(shù)設(shè)置為 True,文件的內(nèi)容將存儲(chǔ)為 unicode 文本。缺省的 unicode 是 False |
Copy的使用
方法名:Copy(destination,overwrite)
說明:將文件夾的所有內(nèi)容,復(fù)制到destination文件夾中。詳細(xì)說明請(qǐng)見表5
示例:
Dim sourcepath sourcepath = "C:/testing" Call FolderAttributes(sourcepath) Sub FolderAttributes(sourcepath) Dim fso,objset Set fso = CreateObject("Scripting.FileSystemObject") '使用GetFolder方法來返回Folder對(duì)象 Set objset = fso.getFolder(sourcepath) '將testing中的所有內(nèi)容復(fù)制到123文件夾中 objset.Copy("d:/123") End Sub
備注:如果目標(biāo)文件夾不存在,則腳本在運(yùn)行是將自動(dòng)創(chuàng)建
Delete的使用
方法名:Delete(force)
說明:刪除文件夾及里面的所有內(nèi)容。詳細(xì)說明請(qǐng)見表5
示例:
Dim sourcepath sourcepath = "C:/testing" Call FolderAttributes(sourcepath) Sub FolderAttributes(sourcepath) Dim fso,objset Set fso = CreateObject("Scripting.FileSystemObject") '使用GetFolder方法來返回Folder對(duì)象 Set objset = fso.getFolder(sourcepath) '將testingw文件夾及文件夾里所有的內(nèi)容全部刪除 objset.Delete(True) End Sub
備注:如果文件夾屬性為只讀且Delete的參數(shù)為False,則腳本在運(yùn)行是將提示“沒有權(quán)限”;當(dāng)文件夾不存在時(shí),將提示“路徑未找到”。
Move的使用
方法名:Move(destination)
說明:將文件夾及里面所有的內(nèi)容移動(dòng)到 destination 指定的文件夾。詳細(xì)說明請(qǐng)見表5
示例:
Dim sourcepath sourcepath = "C:/testing" Call FolderAttributes(sourcepath) Sub FolderAttributes(sourcepath) Dim fso,objset Set fso = CreateObject("Scripting.FileSystemObject") '使用GetFolder方法來返回Folder對(duì)象 Set objset = fso.getFolder(sourcepath) '使用Move()將testing文件夾及里面所有的內(nèi)容,移動(dòng)到目標(biāo)文件夾123中 objset.Move("C:/123") End Sub
備注:如果目標(biāo)文件夾123已存在,則腳本運(yùn)行時(shí)提示“文件已存在”;如果目標(biāo)文件夾123在D:/,則腳本運(yùn)行使提示“沒有權(quán)限”
CreateTextFile的使用
方法名:CreateTextFile(filename,overwrite,unicode)
說明:創(chuàng)建指定文件并返回 TextStream 對(duì)象,該對(duì)象可用于讀或?qū)憚?chuàng)建的文件。詳細(xì)說明請(qǐng)見表5。
示例:
Dim sourcepath sourcepath = "C:/testing" Call FolderAttributes(sourcepath) Sub FolderAttributes(sourcepath) Dim fso,objset Set fso = CreateObject("Scripting.FileSystemObject") '使用GetFolder方法來返回Folder對(duì)象 Set objset = fso.getFolder(sourcepath) '在testing文件夾下,使用CreateTextFile()創(chuàng)建myClass2.doc文件 objset.CreateTextFile "myClass2.doc",true End Sub
備注:CreateTextFile()所創(chuàng)建的文件類型是根據(jù)所提供的擴(kuò)展名來確定的,如也可以寫成myClass2.txt、myClass.exe等等;FileSystemObject對(duì)象也可以調(diào)用CreateTextFile(),我們可以將上面的代碼改寫成:
fso.CreateTextFile “C:/testing/myClass.doc”,true
Folder對(duì)象所提供的屬性:
表6 Folder 對(duì)象的屬性及說明 |
|
屬性 |
說明 |
Attributes |
返回文件夾的屬性。可以是下列值中的一個(gè)或其組合:Normal(0)、ReadOnly(1)、Hidden(2)、System(4)、Volume(名稱)(8)、Directory(文件夾)(16)、Archive(32)、Alias(64) 和 Compressed(128)。例如,一個(gè)隱藏的只讀文件,Attributes 的值為 3 |
DateCreated |
返回該文件夾的創(chuàng)建日期和時(shí)間 |
DateLastAccessed |
返回最后一次訪問該文件夾的日期和時(shí)間 |
DateLastModified |
返回最后一次修改該文件夾的日期和時(shí)間 |
Drive |
返回該文件夾所在的驅(qū)動(dòng)器的驅(qū)動(dòng)器字母 |
Files |
返回 Folder 對(duì)象包含的 Files 集合,表示該文件夾內(nèi)所有的文件 |
IsRootFolder |
返回一個(gè)布爾值說明該文件夾是否是當(dāng)前驅(qū)動(dòng)器的根文件夾 |
Name |
設(shè)定或返回文件夾的名字 |
ParentFolder |
返回該文件夾的父文件夾對(duì)應(yīng)的 Folder 對(duì)象 |
Path |
返回文件夾的絕對(duì)路徑,使用相應(yīng)的長文件名 |
ShortName |
返回 DOS 風(fēng)格的 8.3 形式的文件夾名 |
ShortPath |
返回 DOS 風(fēng)格的 8.3 形式的文件夾的絕對(duì)路徑 |
Size |
返回包含在該文件夾里所有文件和子文件夾的大小 |
SubFolers |
返回該文件夾內(nèi)包含的所有子文件夾對(duì)應(yīng)的 Folders 集合,包括隱藏文件夾和系統(tǒng)文件夾 |
Type |
如果可能,返回一個(gè)文件夾的說明字符串(例如,“Recycle Bin”) |
如上面提到的,我們可以使用下面的腳本來訪問Folder對(duì)象
Dim objfso,objset '創(chuàng)建FileSystemObject對(duì)象 Set objfso = createobject("Scripting.FileSystemObject") '返回C:/testing的Folder的對(duì)象 Set objset = objfso.GetFolder("C:/testing")
注:通過Folder對(duì)象我們就可以訪問其提供的方法及屬性
Drive、DateCreated、Name屬性的使用
示例:
Dim sourcepath sourcepath = "C:/testing" Call FolderAttributes(sourcepath) Sub FolderAttributes(sourcepath) Dim fso,objset Set fso = CreateObject("Scripting.FileSystemObject") '使用GetFolder方法來返回Folder對(duì)象 Set objset = fso.getFolder(sourcepath) '通過Folder對(duì)象來訪問Folder屬性 reporter.ReportEvent micDone ,"測(cè)試Folder屬性","文件夾所在的磁盤為:" objset.Drive " 文件夾所創(chuàng)建的日期:" objset.DateCreated " 文件夾的名字為:" objset.Name End Sub
SubFolers屬性的使用
示例:
Dim sourcepath sourcepath = "C:/Program Files/Common Files" Call FolderAttributes(sourcepath) Sub FolderAttributes(sourcepath) Dim fso,objset,objFolders,FolderName,i i = 0 Set fso = CreateObject("Scripting.FileSystemObject") '使用GetFolder方法來返回Folder對(duì)象 Set objset = fso.getFolder(sourcepath) 'SubFolders屬性將返回所有子文件夾對(duì)應(yīng)的Folder集合 Set objFolders = objset.SubFolders '遍歷Folder集合,統(tǒng)計(jì)出共有多少個(gè)文件夾,及相關(guān)文件夾的名字 For Each objFolder in objFolders i = i +1 'vbcr為換行符 FolderName = FolderName + objFolder.Name + vbcr Next msgbox ("共有" i "個(gè)文件夾,文件夾的名字為:" FolderName) End Sub
Files屬性的使用
示例:
Dim objFso,objGetFolder,intCount,strFileName intCount = 0 '創(chuàng)建FileSystemObject對(duì)象 Set objFso= CreateObject("Scripting.FileSystemObject") '使用GetFolder()獲得文件夾對(duì)象 Set objGetFolder = objFso.GetFolder("C:/test") '遍歷Files集合并顯示文件夾中所有的文件名 For Each strFile in objGetFolder.Files intCount = intCount + 1 strFileName =strFileName "第" intCount "個(gè)文件夾名為:" strFile.Name vbcr Next msgbox strFileName
3. 以文件有關(guān)的方法及屬性
用FileSystemObject對(duì)象來操作文件的方法:
表7 與文件有關(guān)的方法及說明 |
|
方法 |
說明 |
CopyFile(source,destination,overwrite) |
將 source(可包含通配符)指定的一個(gè)或多個(gè)文件復(fù)制到指定的目標(biāo)文件夾 destination。如果 source 包含通配符或 destination 末尾是路徑分隔符(‘'),那么認(rèn)為 destination 是文件夾。否則認(rèn)為 destination 為一新文件的完全路徑和名稱。如果目標(biāo)文件夾已經(jīng)存在且 overwrite 參數(shù)設(shè)置為 False,將產(chǎn)生錯(cuò)誤。缺省的 overwrite 參數(shù)是 True |
CreateTextFile(filename,overwrite,unicode) |
用指定的文件名 filename 在磁盤上創(chuàng)建一個(gè)新的文本文件,并返回與其對(duì)應(yīng)的 TextStream 對(duì)象,如果可選的 overwrite 參數(shù)設(shè)置為 True,則覆蓋同一路徑下已有的同名文件。缺省的 overwrite 參數(shù)是 False。如果可選的 unicode 參數(shù)設(shè)置為 True,則該文件的內(nèi)容將存儲(chǔ)為 Unicode 文本,缺省的 unicode 參數(shù)是 False |
DeleFile(filespec,force) |
刪除由 filespec 指定的一個(gè)或多個(gè)文件(可以在路徑的最后部分包含通配符)。如果可選的 force 參數(shù)設(shè)置為 true,那么也刪除具有只讀屬性的文件。缺省的 force 參數(shù)是False |
FileExists(filespec) |
如果 filespec 指定的文件存在則返回 True,否則返回 False。filespec 參數(shù)可以包含文件的絕對(duì)路徑或相對(duì)路徑,或者是當(dāng)前文件夾中的文件名 |
GetBaseName(filespec) |
返回 filespec 指定的文件的名稱,即包含文件路徑但去掉了文件的擴(kuò)展名 |
GetExtensionName(filespec) |
返回 filespec 指定的文件的擴(kuò)展名 |
GetFile(filespec) |
返回 filespec 指定的文件所對(duì)應(yīng)的 File 對(duì)象??梢灾付ㄎ募南鄬?duì)或絕對(duì)路徑 |
GetFileName(pathspec) |
返回pathspec 指定的文件的路徑或文件名,如果沒有文件名就返回最后的文件夾名。不檢查該文件或文件夾是否存在 |
GetTempName() |
返回一個(gè)隨機(jī)產(chǎn)生的文件名,用于完成運(yùn)算所需的臨時(shí)文件或文件夾 |
MoveFile(source,destination) |
將 source 指定的一個(gè)或多個(gè)源文件移動(dòng)到 destination 指定的目的文件夾。在 source里可以包含通配符,但 destination 不行。如果 source 包含通過配符或 destination 末尾是路徑分隔符(‘'),那么認(rèn)為 destination 是一文件夾。否則,認(rèn)為 destination 是一新文件夾的完整路徑和名稱。如果目的文件夾已經(jīng)存在則產(chǎn)生錯(cuò)誤 |
OpenTextFile(filename,iomode,create,format) |
創(chuàng)建一個(gè)名叫做 filename 的文件,或打開一個(gè)現(xiàn)有的名為 filename 的文件,并且返回一個(gè)與其相關(guān)的 TextStream 對(duì)象。filename 參數(shù)可以包含絕對(duì)或相對(duì)路徑。iomode 參數(shù)指定了所要求的訪問類型。允許的數(shù)值是 ForReading(1)(缺省)、ForWriting(2)、ForAppending(8)。當(dāng)寫入或追加到一個(gè)不存在的文件時(shí),如果 create 參數(shù)設(shè)置為 true,就將創(chuàng)建一個(gè)新文件。缺省的 create 參數(shù)是 False。format 參數(shù)說明對(duì)文件讀或?qū)懙臄?shù)據(jù)格式。允許數(shù)值是:TristatetFalse(0)(缺?。凑?nbsp;ASCII 格式打開;TristatetTrue(-1),按照 Unicode 格式打開;TristateDefault(-2),用系統(tǒng)缺省格式打開 |
CopyFile及MoveFile的使用
方法名:CopyFile(source,destination,overwrite)
說明:將一個(gè)或多個(gè)文件從某位置復(fù)制到另一位置。詳細(xì)說明請(qǐng)見表7
方法名:MoveFile(source,destination)
說明:將 source 指定的一個(gè)或多個(gè)源文件移動(dòng)到 destination 指定的目的文件夾。
示例:
Dim sourcepath,targetpath sourcepath = "C:/testing/*.txt" targetpath = "C:/123/" Call FolderAttributes(sourcepath,targetpath) Sub FolderAttributes(sourcepath,targetpath) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") '將testing文件夾下所有擴(kuò)展名名為.txt的文件,復(fù)制到123文件夾下 fso.CopyFile sourcepath,targetpath fso.MoveFile sourcepath,targetpath End Sub
備注:如果C:/123文件夾不存在,則腳本運(yùn)行時(shí)提示“路徑不存在”
CreateTextFile及DeleteFile的使用
方法名:CreateTextFile(filename,overwrite,unicode)
說明:創(chuàng)建指定文件并返回 TextStream 對(duì)象,該對(duì)象可用于讀或?qū)憚?chuàng)建的文件。
方法名:DeleFile(filespec,force)
說明:刪除指定的文件。詳細(xì)說明請(qǐng)見表7.
示例:
Dim sourcepath sourcepath = "C:/testing/ myClass2.doc " Call FolderAttributes(sourcepath) Sub FolderAttributes(sourcepath) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") '在testing文件夾下,使用CreateTextFile()創(chuàng)建myClass2.doc文件 fso.CreateTextFile sourcepath,true '刪除testing文件夾下,所有擴(kuò)展名為.txt的文件 fso.DeleteFile sourcepath,true End Sub
備注:如果所刪除的文件為只讀屬性且DeleteFile()的參數(shù)為false的話,則腳本運(yùn)行是出現(xiàn)“沒有權(quán)限”FileExists的使用
方法名:FileExists(filespec)
說明:判斷所指定的文件是否存在。此方法將返回Bool值. 詳細(xì)說明請(qǐng)見表7.
示例:
Dim sourcepath sourcepath = "C:/testing/test.txt" Call FolderAttributes(sourcepath) Sub FolderAttributes(sourcepath) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") '判斷C:/testing/test.txt是否有存在,如果存在返回“true”;否則返回“false” If fso.FileExists(sourcepath) Then msgbox "true" else msgbox "false" End If End Sub
GetBaseName、GetFileName及GetExtensionName的使用
方法名:GetBaseName(filespec)
說明:返回字符串,文件 (不帶擴(kuò)展名), 或者提供的路徑說明中的文件夾。
方法名:GetExtensionName(filespec)
說明:返回字符串,該字符串包含路徑最后一個(gè)組成部分的擴(kuò)展名。
方法名:GetFileName(pathspec)
說明:返回指定路徑(不是指定驅(qū)動(dòng)器路徑部分)的最后一個(gè)文件或文件夾。
示例:
Dim sourcepath sourcepath = "C:/testing/test.txt" Call FolderAttributes(sourcepath) Sub FolderAttributes(sourcepath) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") '返回文件名test, 擴(kuò)展名 txt, 文件名+擴(kuò)展名 test.txt Msgbox (fso.GetBaseName(sourcepath)) Msgbox (fso. GetExtensionName(sourcepath)) Msgbox (fso.GetFileName(sourcepath)) End Sub
GetFile的使用
方法名:GetFile(filespec)
說明:返回與指定路徑中某文件相應(yīng)的 File 對(duì)象,既而可以訪問到File的屬性。
示例:
Dim sourcepath sourcepath = "C:/testing/778899.txt" Call FolderAttributes(sourcepath) Sub FolderAttributes(sourcepath) Dim fso,objFile Set fso = CreateObject("Scripting.FileSystemObject") '調(diào)用GetFile()返回File對(duì)象,通過File對(duì)象來訪問其下的屬性 set objFile = fso.GetFile(sourcepath) reporter.ReportEvent micDone,"訪問file的屬性","該文件所在的盤符為:" objFile.Drive " 文件名為:" objFile.Name End Sub
注:關(guān)于File對(duì)象的屬性,將在下面會(huì)詳細(xì)介紹
GetTempName的使用
方法名:GetTempName()
說明:返回隨機(jī)生成的臨時(shí)文件或文件夾的名稱,用于執(zhí)行要求臨時(shí)文件或文件夾的操作
示例:
Dim fso, tempfile '創(chuàng)建FileSystemObject對(duì)象 Set fso = CreateObject("Scripting.FileSystemObject") '調(diào)用CreateTempFile函數(shù),并將對(duì)象賦值給tempfile Set tempfile = CreateTempFile '在臨時(shí)文件中寫入字符 tempfile.WriteLine "世界你好" '關(guān)閉對(duì)象 tempfile.Close Function CreateTempFile Dim tfolder, tname, tfile Const TemporaryFolder = 2 'GetSpecialFolder()中的參數(shù)2,返回一個(gè)名為Temp的臨時(shí)文件夾 Set tfolder = fso.GetSpecialFolder(TemporaryFolder) '隨機(jī)生成一個(gè)臨時(shí)文件名 tname = fso.GetTempName '在Temp臨時(shí)文件夾下面,創(chuàng)建一個(gè)臨時(shí)文件 Set tfile = tfolder.CreateTextFile(tname) '將結(jié)果賦值給函數(shù) Set CreateTempFile = tfile End Function
備注:GetTempName 方法不創(chuàng)建文件,該方法僅提供臨時(shí)文件名。示例中的的結(jié)果,默認(rèn)保存在C:/Documents and Settings/Administrator/Local Settings/Temp
OpenTextFile的使用
方法名:(filename,iomode,create,format)
說明:打開指定的文件并返回一個(gè) TextStream 對(duì)象,可以讀取、寫入此對(duì)象或?qū)⑵渥芳拥轿募T敿?xì)的說明見表7.
示例:
Dim spec spec = "C:/testing.txt" '三個(gè)參數(shù)的分別為:以只讀模式打開文件、以只寫方式打開文件、打開文件并在文件末尾進(jìn)行寫操作 Const intForReading = 1,intForWriting = 2,intForAppending = 8 '調(diào)用OpenTextFileTest() Call OpenTextFileTest(spec,intForAppending) Sub OpenTextFileTest(sepc,intForAppending) Dim fso,objTStream '創(chuàng)建FileSystemObject對(duì)象 Set fso = CreateObject("Scripting.FileSystemObject") '參數(shù)true表示:如果文件不存在,則創(chuàng)建文件。最后OpenTextFile()將返回TextStream對(duì)象 Set objTStream = fso.OpenTextFile(sepc,intForAppending,true) '利用TextStream對(duì)象來將字符串寫入文件 objTStream.write "hello word!" '釋放TextStream對(duì)象 objTStream.close End Sub
File對(duì)象所提供的屬性
表8 File 對(duì)象的屬性及說明 |
|
屬性 |
說明 |
Attributes |
返回文件的屬性??梢允窍铝兄抵械囊粋€(gè)或其組合:Normal(0)、ReadOnly(1)、Hidden(2)、System(4)、Volume(名稱)(9)、Directory(文件夾)(16)、Archive(32)、Alias(64) 和 Compressed(128) |
DateCreated |
返回該文件夾的創(chuàng)建日期和時(shí)間 |
DateLastAccessed |
返回最后一次訪問該文件的日期和時(shí)間 |
DateLastModified |
返回最后一次修改該文件的日期和時(shí)間 |
Drive |
返回該文件所在的驅(qū)動(dòng)器的 Drive 對(duì)象 |
Name |
設(shè)定或返回文件的名字 |
ParentFolder |
返回該文件的父文件夾的 Folder 對(duì)象 |
Path |
返回文件的絕對(duì)路徑,可使用長文件名 |
ShortName |
返回 DOS 風(fēng)格的 8.3 形式的文件名 |
ShortPath |
返回 DOS 風(fēng)格的 8.3 形式的文件絕對(duì)路徑 |
Size |
返回該文件的大?。ㄗ止?jié)) |
Type |
如果可能,返回一個(gè)文件類型的說明字符串(例如:“Text Document”表示 .txt 文件) |
我們?cè)谇懊鍲ile對(duì)象的方法中曾提到,可以使用FileSystemObject對(duì)象的GetFile()來訪問File對(duì)象屬性。
訪問File對(duì)象屬性的示例如下:
Dim sourcepath sourcepath = "C:/testing/778899.txt" Call FolderAttributes(sourcepath) Sub FolderAttributes(sourcepath) Dim fso,objFile Set fso = CreateObject("Scripting.FileSystemObject") '調(diào)用GetFile()返回File對(duì)象,通過File對(duì)象來訪問其下的屬性 set objFile = fso.GetFile(sourcepath) reporter.ReportEvent micDone,"訪問file的屬性","該文件所在的盤符為:" objFile.Drive " 文件名為:" objFile.Name End Sub
備注:File對(duì)象屬性的使用方法和前面介紹的Folder對(duì)象屬性的使用方法一樣,所以在這不一一列出。
TextStream對(duì)象概述
TextStream對(duì)象是用于訪問文本文件的對(duì)象,它是FileSystemObject一個(gè)獨(dú)立的附屬對(duì)象,但在使用TextStream對(duì)象時(shí),我們?nèi)砸柚鶩ileSystemObject 對(duì)象或其附屬對(duì)象來創(chuàng)建一個(gè) TextStream 對(duì)象并訪問磁盤文件的內(nèi)容。可以通過FileSystemObject 對(duì)象的CreateTextFile()及OpenTextFile(),來獲取TextStream的對(duì)象句柄。
下面我們來具體的看看TextStream 對(duì)象的方法及屬性的使用。
一、TextStream對(duì)象的方法
表9 TextStream 對(duì)象的方法及說明 |
|
方法 |
說明 |
Close() |
關(guān)閉一個(gè)打開的文件 |
Read(numchars) |
從文件中讀出 numchars 個(gè)字符 |
ReadAll() |
作為單個(gè)字符串讀出整個(gè)文件 |
ReadLine() |
作為一個(gè)字符串從文件中讀出一行(直到回車符和換行) |
Skip(numchars) |
當(dāng)從文件讀出時(shí)忽略 numchars 個(gè)字符 |
SkipLine() |
當(dāng)從文件讀出時(shí)忽略下一行 |
Write(string) |
向文件寫入字符串 string |
WriteLine(string) |
向文件寫入字符串 string(可選)和換行符 |
WriteBlankLines(n) |
向文件寫入 n 個(gè)換行符 |
Close、Write、WriteLine及WriteBlankLines的使用
方法名:Close()
說明:關(guān)閉正在打開的文件
方法名:WriteLine(string)
說明:向文件寫入字符串 string(可選)和換行符。
示例:
Dim strPath,strText strPath = "C:/testing.txt" strText = "This is Test !" vbCrLf “hello word !” '調(diào)用函數(shù) Call CreateFile(strPath,strText) Sub CreateFile(strPath,strText) Dim objFso,objStream '創(chuàng)建FileSystemObject對(duì)象 Set objFso = CreateObject("Scripting.FileSystemObject") '使用FileSystemObject對(duì)象的CreateTextFile(),來返回一個(gè)TextStream對(duì)象句柄 Set objStream = objFso.CreateTextFile(strPath,True) '三個(gè)Write的意思分別為:在文本中寫入字符、寫入帶換行符的字符、寫入3個(gè)換行符 objStream.Write(strText) ‘objStream.WriteLine(strText) ‘objStream. WriteBlankLines 3 '關(guān)閉TextStream對(duì)象 objStream.Close End Sub
Read、ReadAll及ReadLine的使用
方法名:Read(numchars)
說明:從 TextStream 文件中讀入指定數(shù)目的字符并返回結(jié)果字符串。
方法名:ReadAll()
說明:讀入全部 TextStream 文件并返回結(jié)果字符串。
方法名:ReadLine()
說明:從 TextStream 文件中讀入一整行字符(直到下一行,但不包括下一行字符),并返回結(jié)果字符串。
示例:
Sub CreateFile(strPath,strText) Dim objFso,objStream '創(chuàng)建FileSystemObject對(duì)象 Set objFso = CreateObject("Scripting.FileSystemObject") '使用FileSystemObject對(duì)象的CreateTextFile(),來返回一個(gè)TextStream對(duì)象句柄 Set objStream = objFso.CreateTextFile(strPath,True) '寫入字符 objStream.WriteLine(strText) Set objStream = objFso.OpenTextFile(strPath,1,true) msgbox (objStream.ReadLine) 'msgbox (objStream.ReadAll) ' msgbox (objStream.Read(Len(strText))) '關(guān)閉TextStream對(duì)象 objStream.Close End Sub
Skip、SkipLine的使用
方法名:Skip(numchars)
說明:讀取 TextStream 文件時(shí)跳過指定數(shù)目的字符
方法名:SkipLine()
說明:當(dāng)讀到 TextStream 文件時(shí),跳過下一行。
示例:
Dim strPath,strText strPath = "C:/testing.txt" '調(diào)用函數(shù) Call CreateFile(strPath) Sub CreateFile(strPath) Dim objFso,objStream '創(chuàng)建FileSystemObject對(duì)象 Set objFso = CreateObject("Scripting.FileSystemObject") '使用FileSystemObject對(duì)象的CreateTextFile(),來返回一個(gè)TextStream對(duì)象句柄 Set objStream = objFso.CreateTextFile(strPath,True) '在文本中寫入字符 objStream.Write "This is Test !" vbCrLf "hello word !" '以只讀的方式打開文件 Set objStream = objFso.OpenTextFile(strPath,1,true) '讀取文件時(shí)跳過5個(gè)字符;或者跳過當(dāng)前行,讀取下一行 objStream.Skip(5) 'objStream.SkipLine '讀取文本內(nèi)容 msgbox objStream.ReadAll '關(guān)閉TextStream對(duì)象 objStream.Close End Sub
備注:兩者的區(qū)別是:Skip——跳過指定的幾個(gè)字符;SkipLine——跳過一行
二、TextStream對(duì)象的屬性
TextStream 的屬性提供有關(guān)文件內(nèi)文件指針當(dāng)前位置的信息,如表9所示。注意,所有的屬性是只讀的。
表10 TextStream 對(duì)象的屬性及說明 |
|
屬性 |
說明 |
AtEndOfLine |
如果文件位置指針在文件中一行的末尾則返回 True |
AtEndOfStream |
如果文件位置指針在文件的末尾則返回 True |
Column |
從 1 開始返回文件中當(dāng)前字符的列號(hào) |
Line |
從 1 開始返回文件中當(dāng)前行的行號(hào)” |
AtEndOfLine 和 AtEndOfStream 屬性僅對(duì)以 iomode 參數(shù)為 ForReading 的方式打開的文件可用,否則將會(huì)出錯(cuò)。
AtEndOfLine及AtEndOfStream的使用
示例:
Dim strPath,strText strPath = "C:/testing.txt" '調(diào)用函數(shù) Call CreateFile(strPath) Sub CreateFile(strPath) Dim objFso,objStream,str '創(chuàng)建FileSystemObject對(duì)象 Set objFso = CreateObject("Scripting.FileSystemObject") '以只讀的方式打開文件,如果文件不存在則創(chuàng)建它 Set objStream = objFso.OpenTextFile(strPath,1,true) '如果當(dāng)前的指針不在行末,則讀取文本內(nèi)容 Do While objStream.AtEndOfLine > true ‘Do While objStream.AtEndOfStream > true str = str + objStream.Read(1) Loop msgbox str '關(guān)閉TextStream對(duì)象 objStream.Close End Sub
備注:兩者間的區(qū)別是:AtEndOfLine——讀取到當(dāng)前文本行的末尾;AtEndOfStream——讀取到整個(gè)文本的末尾
Column及Line的使用
示例:
Sub TestTextStream(strPath) Dim objFso,objTStream,str Set objFso = CreateObject("Scripting.FileSystemObject") '以只讀的方式打開文件 Set objTStream = objFso.OpenTextFile(strPath,1) '如果當(dāng)前的指針不在整個(gè)文檔的末尾,讀取文本的所有內(nèi)容 Do While objTStream.AtEndOfStream > true objTStream.ReadAll str = str + "共有" objTStream.Line "行數(shù)據(jù),光標(biāo)最后所在列號(hào)為:" objTStream.Column vbCrLf Loop '打印信息 print str End Sub
以下是補(bǔ)充資料:
FSO包含的常見對(duì)象有:
對(duì)象/集合 |
描述 |
Drive |
包含儲(chǔ)存設(shè)備的信息,包括硬盤、光驅(qū)、ram盤、網(wǎng)絡(luò)驅(qū)動(dòng)器 |
Drives |
提供一個(gè)物理和邏輯驅(qū)動(dòng)器的列表 |
File |
檢查和處理文件 |
Files |
提供包含在文件夾內(nèi)的所有文件的列表 |
Folder |
檢查和處理文件夾 |
Folders |
提供在 Folder 內(nèi)的所有文件夾的列表 |
TextStream |
對(duì)象。用來讀寫文本文件。 |
用FSO對(duì)象模型來編程,使用CreateObject方法來創(chuàng)建FileSystemObject對(duì)象,例如:
Dim fso
Set fso = wscript.createobject("scripting.filesystemobject")
在這個(gè)示例中,Scripting 是類型庫的名字,而 FileSystemObject 則是想要?jiǎng)?chuàng)建的對(duì)象的名字。至此我們獲取了fso對(duì)象,接下來就可以使用fso對(duì)象了。如果要釋放的話也很簡(jiǎn)單,例如:
Set fso = nothing
FileSystemObject對(duì)象總共一個(gè)屬性即Drives
描述:獲得所有可用驅(qū)動(dòng)器的集合。
說明:無論是否本地磁盤、插入媒體、可移動(dòng)媒體驅(qū)動(dòng)器都顯示在 Drives 集合中。
具體示例代碼如下所示:獲取本計(jì)算機(jī)上所有的磁盤的盤符
Set fso = CreateObject("Scripting.FileSystemObject") Set Drivers = fso.Drives For Each Driver in Drivers Msgbox Driver.DriveLetter '輸出計(jì)算機(jī)上所有的磁盤盤符 Next
方法:(僅常用的方法)
CreateFile
描述:創(chuàng)建一個(gè)空文件
語法:object. CreateTextFile(strFile,blnOverWrite)
參數(shù):strFile為文件名稱
blnOverWrite為Ture強(qiáng)制覆蓋,為False不覆蓋
示例:創(chuàng)建文件C:\test.txt
Dim Fso '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用CreateTextFile創(chuàng)建文件,不覆蓋存在的文件 Fso.CreateTextFile "C:\test.txt",False '覆蓋存在的文件 Fso.CreateTextFile "C:\test.txt",True
CreateFolder
描述:創(chuàng)建一個(gè)空的文件夾
語法:object. CreateFolder(strFolder)
參數(shù):strFolder為想要?jiǎng)?chuàng)建的文件夾名稱
示例:創(chuàng)建文件夾: c:\test
Dim Fso '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用MyFolder創(chuàng)建文件夾 Fso.CreateFolder("c:\test")
DeleteFile
描述:刪除一個(gè)文件
語法:object. DeleteFile (strFile,force)
參數(shù):strFile為想要?jiǎng)h除的文件。組成部分中可用通配符。
force如果要?jiǎng)h除只讀文件,則該值為 True;否則為 False(默認(rèn))
示例:刪除文件: c:\test.txt
Dim Fso '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用DeleteFile刪除指定文件 Fso.DeleteFile("c:\test.txt") '強(qiáng)制刪除只讀的文件 Fso.DeleteFile "c:\test.txt",True
DeleteFolder
描述:刪除一個(gè)文件夾
語法:object. DeleteFolder(strFolder,force)
參數(shù):strFolder為想要?jiǎng)h除的文件夾名稱。組成部分中可用通配符。
force如果要?jiǎng)h除只讀文件夾,則該值為 True;否則為 False(默認(rèn))
示例:刪除文件夾: c:\test
Dim Fso '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用DeleteFile刪除指定文件 Fso.DeleteFolder("c:\test") '強(qiáng)制刪除只讀的文件 Fso.DeleteFolder "c:\test",True
FileExists
描述:判斷指定文件是否存在
語法:object. FileExists (strFile)
參數(shù):strFile為指定的文件
示例:檢查文件: c:\test.txt是否存在
Dim Fso '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用FileExists判斷指定文件是否存在 MsgBox Fso.FileExists("c:\test.txt")
FolderExist
描述:判斷指定文件夾是否存在
語法:object. FolderExists (strFolder)
參數(shù):strFolder為指定的文件夾
示例:檢查文件夾: c:\test是否存在
Dim Fso '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用FolderExists判斷指定文件夾是否存在 MsgBox Fso.FolderExists("c:\test")
CopyFile
描述:將一個(gè)或多個(gè)文件從某位置復(fù)制到另一位置
語法:object.CopyFile "source", "destination"[, overwrite]
參數(shù):source必選項(xiàng)。表示指定文件的路徑。組成部分中可用通配符。
destination必選項(xiàng)。表示目標(biāo)位置路徑
overwrite可選項(xiàng)。Boolean 值表明是否覆蓋現(xiàn)有文件。如果是 True,則覆蓋文件;如果是 False,則不覆蓋現(xiàn)有文件。默認(rèn)值是 True
示例:將 c:\test.txt文件復(fù)制到D:\下
Dim Fso '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用CopyFile復(fù)制文件到另一個(gè)位置,False不覆蓋已存在文件 Fso.CopyFile "c:\test.txt","D:\",False 'True覆蓋已存在文件 Fso.CopyFile "c:\test.txt","D:\",True
示例:將 c:\下所有的txt文件復(fù)制到D:\下
Dim Fso '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用*.txt,可以同時(shí)將多個(gè)文件復(fù)制到另一個(gè)位置,False不覆蓋已存在文件 Fso.CopyFile "c:\*.txt","D:\",False 'True表示覆蓋已存在文件 Fso.CopyFile "c:\*.txt","D:\",True
CopyFolder
描述:將文件夾從某位置復(fù)制到另一位置
語法:object. CopyFolder "source", "destination"[, overwrite]
參數(shù):source必選項(xiàng)。表示指定文件夾的路徑。組成部分中可用通配符。
destination必選項(xiàng)。表示目標(biāo)位置的路徑
overwrite可選項(xiàng)。Boolean 值表明是否覆蓋現(xiàn)有文件夾。
如果是 True,則覆蓋文件夾;如果是 False,則不覆蓋現(xiàn)有文件夾。默認(rèn)值是 True
示例:將 c:\test文件夾復(fù)制到D:\下
Dim Fso '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用CopyFile復(fù)制文件到另一個(gè)位置,默認(rèn)為True覆蓋已存在文件 Fso.CopyFolder "c:\test","D:\" 'False不覆蓋已存在文件 Fso.CopyFolder "c:\test","D:\",False
MoveFile
描述:將一個(gè)或多個(gè)文件從某位置移動(dòng)到另一位置
語法:object.MoveFile source, destination
參數(shù):source必選項(xiàng)。要移動(dòng)的文件的路徑。組成部分中可用通配符。
destination必選項(xiàng)。指定路徑,表示要將文件移動(dòng)到該目標(biāo)位置。
destination 參數(shù)不能包含通配符。
示例:將 c:\test文件夾移動(dòng)到D:\下
Dim Fso '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用MoveFile移動(dòng)文件到另一個(gè)位置 Fso.MoveFile "c:\test.txt","D:\"
MoveFolder
描述:將一個(gè)或多個(gè)文件夾從某位置移動(dòng)到另一位置
語法:object.MoveFolder source, destination
參數(shù):source必選項(xiàng)。要移動(dòng)的文件夾的路徑。組成部分中可用通配符。
destination必選項(xiàng)。指定路徑,表示要將文件夾移動(dòng)到該目標(biāo)位置。
示例:
Dim Fso '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用MoveFolder移動(dòng)文件夾到另一個(gè)位置 Fso.MoveFolder "c:\test","D:\"
GetExtensionName
描述:獲取文件后綴名
語法:object.MoveFolder source, destination
參數(shù):source必選項(xiàng)。要移動(dòng)的文件夾的路徑。組成部分中可用通配符。
destination必選項(xiàng)。指定路徑,表示要將文件夾移動(dòng)到該目標(biāo)位置。
示例:獲取”c:\test.txt”文件后綴名
Dim Fso Dim GetExtensionName '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用GetExtensionName獲取文件后綴名 GetExtensionName = fso.GetExtensionName("c:\test.txt") MsgBox GetExtensionName '輸出txt
GetBaseName
描述:獲取文件當(dāng)前所在文件夾
語法:object.GetBaseName Path
參數(shù):Path必選項(xiàng)。文件路徑名。
示例:獲取”c:\test.txt”文件名稱
Dim Fso Dim GetBaseName '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用GetBaseName獲取文件的文件名稱 GetBaseName = Fso.GetBaseName("c:\test\test.txt") MsgBox GetBaseName '輸出test
GetParentFolderName
描述:將一個(gè)或多個(gè)文件夾從某位置移動(dòng)到另一位置
語法:object.GetParentFolderName Path
參數(shù):Path必選項(xiàng)。文件路徑名。
示例:獲取”c:\test.txt”文件所在的文件夾
Dim Fso Dim GetParentFolderName '創(chuàng)建FileSystemObject對(duì)象 Set Fso = CreateObject("Scripting.FileSystemObject") '使用GetParentFolderName獲取文件當(dāng)前所在的文件夾 GetParentFolderName = Fso.GetParentFolderName("c:\test\test.txt") MsgBox GetParentFolderName '輸出c:\test
好了這篇文章就介紹到這了,看完這篇文章基本上對(duì)FileSystemObject就比較了解了。
標(biāo)簽:四平 文山 邢臺(tái) 西安 鶴壁 銅川 湖州
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《VBS基礎(chǔ)篇 - FileSystemObject對(duì)象詳解》,本文關(guān)鍵詞 VBS,基礎(chǔ),篇,FileSystemObject,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。