您好,登錄后才能下訂單哦!
這篇文章給大家介紹VBS中FileSystemObject對(duì)象有什么用,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
FileSystemObject對(duì)象概述
FileSystemObject 對(duì)象的作用:提供對(duì)計(jì)算機(jī)文件系統(tǒng)的訪問,它允許我們?cè)诖a內(nèi)操作文本文件、文件夾及驅(qū)動(dòng)器。FileSystemObject 對(duì)象提供一個(gè)屬性和一系列方法,可用它們來操縱 FileSystemObject 對(duì)象實(shí)現(xiàn)的一些從屬對(duì)象。這里提供了全部的內(nèi)容概要,然后介紹每一個(gè)從屬對(duì)象。
一、FileSystemObject 對(duì)象的屬性
FileSystemObject 對(duì)象只有一個(gè)屬性,它用于得到當(dāng)前機(jī)器上的所有有效驅(qū)動(dòng)器的列表,如表1所示:
表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è)萘浚?quot; & 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)(缺?。orWriting(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)(缺省),按照 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
FileSystemObject實(shí)例代碼
創(chuàng)建文件
set fso = server.CreateObject("Scripting.FileSystemObject") set f = fso.CreateTextFile("C:\test.txt", true) '第二個(gè)參數(shù)表示目標(biāo)文件存在時(shí)是否覆蓋 f.Write("寫入內(nèi)容") f.WriteLine("寫入內(nèi)容并換行") f.WriteBlankLines(3) '寫入三個(gè)空白行(相當(dāng)于在文本編輯器中按三次回車) f.Close() set f = nothing set fso = nothing
打開并讀文件
set fso = server.CreateObject("Scripting.FileSystemObject") set f = fso.OpenTextFile("C:\test.txt", 1, false) '第二個(gè)參數(shù) 1 表示只讀打開,第三個(gè)參數(shù)表示目標(biāo)文件不存在時(shí)是否創(chuàng)建 f.Skip(3) '將當(dāng)前位置向后移三個(gè)字符 f.SkipLine() '將當(dāng)前位置移動(dòng)到下一行的第一個(gè)字符,注意:無參數(shù) response.Write f.Read(3) '從當(dāng)前位置向后讀取三個(gè)字符,并將當(dāng)前位置向后移三個(gè)字符 response.Write f.ReadLine() '從當(dāng)前位置向后讀取直到遇到換行符(不讀取換行符),并將當(dāng)前位置移動(dòng)到下一行的第一個(gè)字符,注意:無參數(shù) response.Write f.ReadAll() '從當(dāng)前位置向后讀取,直到文件結(jié)束,并將當(dāng)前位置移動(dòng)到文件的最后 if f.atEndOfLine then response.Write("一行的結(jié)尾!") end if if f.atEndOfStream then response.Write("文件的結(jié)尾!") end if f.Close() set f = nothing set fso = nothing
打開并寫文件
set fso = server.CreateObject("Scripting.FileSystemObject") set f = fso.OpenTextFile("C:\test.txt", 2, false) '第二個(gè)參數(shù) 2 表示重寫,如果是 8 表示追加 f.Write("寫入內(nèi)容") f.WriteLine("寫入內(nèi)容并換行") f.WriteBlankLines(3) '寫入三個(gè)空白行(相當(dāng)于在文本編輯器中按三次回車) f.Close() set f = nothing set fso = nothing
判斷文件是否存在
set fso = server.CreateObject("Scripting.FileSystemObject") if fso.FileExists("C:\test.txt") then response.Write("目標(biāo)文件存在") else response.Write("目標(biāo)文件不存在") end if set fso = nothing
移動(dòng)文件
set fso = server.CreateObject("Scripting.FileSystemObject")
call fso.MoveFile("C:\test.txt", "D:\test111.txt") '兩個(gè)參數(shù)的文件名部分可以不同
set fso = nothing
復(fù)制文件
set fso = server.CreateObject("Scripting.FileSystemObject")
call fso.CopyFile("C:\test.txt", "D:\test111.txt") '兩個(gè)參數(shù)的文件名部分可以不同
set fso = nothing
刪除文件
set fso = server.CreateObject("Scripting.FileSystemObject")
fso.DeleteFile("C:\test.txt")
set fso = nothing
創(chuàng)建文件夾
set fso = server.CreateObject("Scripting.FileSystemObject")
fso.CreateFolder("C:\test") '目標(biāo)文件夾的父文件夾必須存在
set fso = nothing
判斷文件夾是否存在
set fso = server.CreateObject("Scripting.FileSystemObject")
if fso.FolderExists("C:\Windows") then
response.Write("目標(biāo)文件夾存在")
else
response.Write("目標(biāo)文件夾不存在")
end if
set fso = nothing
刪除文件夾
set fso = server.CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder("C:\test") '文件夾不必為空
set fso = nothing
檢測(cè)驅(qū)動(dòng)器C盤是否存在
Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.DriveExists("c:")
獲取文件路徑的驅(qū)動(dòng)器名
Set fso=Server.CreateObject("Scripting.FileSystemObject")
p=fso.GetDriveName(Server.MapPath("aqa33"))
Response.Write("驅(qū)動(dòng)器名稱是:" & p)
set fs=nothing
取得某個(gè)指定的路徑的父文件夾的名稱
Set fso=Server.CreateObject("Scripting.FileSystemObject")
p=fso.GetParentFolderName(Server.MapPath("aqa331.asp"))
Response.Write("父文件夾名稱是:" & p)
set fs=nothing
取得指定路徑中的最后一個(gè)成分的文件擴(kuò)展名
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Response.Write(fs.GetExtensionName(Server.MapPath("aqa33.asxd")))
set fs=nothing
取得指定路徑中的最后一個(gè)成分的文件名
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Response.Write(fs.GetFileName(Server.MapPath("aqa33.asxd")))
set fs=nothing
返回在指定的路徑中文件或者文件夾的基本名稱。
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Response.Write(fso.GetBaseName("c:\windows\cursors\abc.cur"))
Response.Write("<br />")
Response.Write(fso.GetBaseName("c:\windows\cursors\"))
Response.Write("<br />")
Response.Write(fso.GetBaseName("c:\windows\"))
set fso=nothing
關(guān)于VBS中FileSystemObject對(duì)象有什么用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。