




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、使用 VBA 操作文件 (4):FileSystemObject 對象使用 VBA 操作文件 (4):FileSystemObject 對象FileSystemObject 對象位于 File System 對象模型的最高層,并且是該層次中惟一可以在外部創(chuàng)建的對象,也就 是說它是惟一能使用 New 關鍵字的對象。FileSystemObject 對象有許多用來操作文件系統(tǒng)的方法和屬性。下面先看一個例子,如下面的代碼:Sub FileInfo()Dim fs As ObjectDim objFile As ObjectDim strMsg As StringSet fs = CreateObje
2、ct(Scripting.FileSystemObject)Set objFile = fs.GetFile(C:WindowsSystem.ini)strMsg = 文件名 : & objFile.Name & vbCrLfstrMsg = strMsg & 硬盤 : & objFile.Drive & vbCrLfstrMsg = strMsg & 創(chuàng)建日期 : & objFile.DateCreated & vbCrLfstrMsg = strMsg & 修改日期 : & objFile.DateLastModified & vbCrLfMsgBox strMsg, , 文件信息 End
3、 SubFileInfo 過程首先使用 CreateObject 函數(shù)創(chuàng)建一個 FileSystemObject 對象,用來訪問計算機的文件系統(tǒng)。然后, 使用GetFile方法創(chuàng)建一個File對象并返回對System.ini文件的引用。接著,利用File對象的Name屬性、Drive屬性、 DateCreated 屬性、 DateLastModified 屬性返回文件的相應信息。下面詳細介紹 FileSystemObject 對象的方法和屬性。BuildPath 方法其語法為:oFileSysObj.BuildPath (Path,Name)其中, oFileSysObj 為任何能夠返回 Fi
4、leSystemObject 對象的對象變量。參數(shù) Path 必需,指定驅動器或文件夾 路徑,String類型,可以是絕對路徑也可以是相對路徑,不一定要包含驅動器名。參數(shù)Name必需,指定附加在Path后的文件夾或文件路徑, String 類型。參數(shù) Path 或 Name 都不一定要求是當前已經存在的路徑或文件夾。BuildPath 方法通過合并參數(shù) Path 和文件夾或文件名生成一個字符串, 并且在必要的地方加上正確的主機系統(tǒng)路 徑分隔符。該方法不能檢驗新的文件夾或文件名的有效性。與人工合并兩個字符串相比,使用 BuildPath 函數(shù)的惟一好處就是它能夠選擇正確的路徑分隔符。FileEx
5、ists 方法FileExists 方法用于判斷指定的文件是否存在,若存在則返回 True 。其語法為:oFileSysObj.FileExists(FileSpec)其中, oFileSysObj 代表任何能夠返回 FileSystemObject 對象的對象。參數(shù) FileSpec 必需,代表文件的完整路徑, String 類型,不能包含有通配符。如果用戶有充分的權限, FileSpec 可以是網絡路徑或共享名,例如:If ofs.FileExists(TestPathTest.txt) Then示例Sub IfFileExists()Dim fs As ObjectDim strFile
6、 As StringSet fs = CreateObject(Scripting.FileSystemObject)strFile = InputBox( 請輸入文件的完整名稱 :)If fs.FileExists(strFile) ThenMsgBox strFile & 已經找到 .ElseMsgBox 該文件不存在 .End IfEnd SubGetFile 方法GetFile 方法用來返回一個 File 對象。其語法為:oFileSysObj.GetFile (FilePath)其中, oFileSysObj 代表任何能夠返回 FileSystemObject 對象的對象變量。參數(shù)
7、FilePath 必需,指定路徑和文件 名, String 類型??梢允墙^對路徑或相對路徑。如果 FilePath 是一個共享名或網絡路徑, GetFile 確認該驅動器或共享 是 File 對象創(chuàng)建進程的一部分。如果參數(shù) FilePath 指定的路徑的任何部分不能連接或不存在,就會產生錯誤。GetFile 方法返回的是 File 對象,而不是 TextStream 對象。 File 對象不是打開的文件,主要是用來完成如復制或 移動文件和詢問文件的屬性之類的方法。盡管不能對 File 對象進行寫或讀操作,但可以使用 File 對象的 OpenAsTextStream 方法獲得 TextStre
8、am 對象。要獲得所需的 FilePath 字符串,首先應該使用 GetAbsolutePathName 方法。如果 FilePath 包含網絡驅動器或共 享,可以在調用 GetFile 方法之前用 DriveExists 方法來檢驗所需的驅動器是否可用。因為在 FilePath 指定的文件不存在時會產生錯誤,所以應該在調用 GetFile 之前調用 FileExists 方法確定文件是 否存在。必須用 Set 語句將 File 對象賦給一個局部對象變量。GetFileName 方法GetFileName 方法返回給定路徑的文件名稱部分。其語法為:oFileSysObj.GetFileName
9、 (Path)其中,oFileSysObj表示任何能夠返回FileSystemObject對象的對象變量。參數(shù)Path必需,指定路徑說明,String 類型。如果不能從給定的 Path 確定文件名,則返回一個零長字符串( ”)。 Path 可以為絕對路徑或相對路徑。GetFileName 方法不能檢驗 Path 中是否存在指定的文件。 Path 可以為網絡驅動器或共享。 GetFileName 本身不 具有智能,它認為字符串中不屬于驅動器說明的最后部分就是一個文件名,更像是一個字符串處理函數(shù)而不是對象處理 方法。GetFileVersion 方法GetFileVersion 方法返回文件的版本
10、。CopyFile 方法CopyFile 方法用來復制文件,將文件從一個文件夾復制到另一個文件夾。其語法為:oFileSysObj.CopyFile Source,Destination ,OverwriteFiles其中, oFileSysObj 代表任何能夠返回 FileSystemObject 對象的對象變量。參數(shù) Source 必需,指定要復制的文 件的路徑和名稱, String 類型。參數(shù) Destination 必需,代表復制文件的目標路徑和文件名(可選), String 類型。參數(shù) OverwriteFiles 可選,表示是否覆蓋一個現(xiàn)有文件的標志, True 表示覆蓋, Fal
11、se 表示不覆蓋, Boolean 類型,默認值 為 True 。參數(shù) source 中源路徑可以是絕對路徑或相對路徑,源文件名可包含通配符但源路徑不能。在參數(shù) Destination 中 不能包含通配符。如果目標路徑或文件設置為只讀, 則無論 OverwriteFiles 參數(shù)的值如何, 都將無法完成 CopyFile 方法。如果參數(shù) OverwriteFiles 設置為 False 且 Destination 指定的文件已經存在,則會產生一個運行時錯誤 “文件已經存在 ”。如果在復 制多個文件時出現(xiàn)錯誤, CopyFile 方法將立即停止復制操作,該方法不具有撤銷錯誤前文件復制操作的返回功
12、能。如果 用戶有充分的權限,那么 source 或 destination 可以是網絡路徑或共享名,例如:CopyFile NTSERV1RootTesttest.txt,C:RootOneCopyFile 方法可以復制一個保存在特定文件夾中的文件。如果文件夾本身有包含文件的子文件夾,則使用CopyFile 方法不能復制這些文件,應該使用 CopyFolder 方法。例如:Sub CopyFile()Dim fs As ObjectDim strFile As StringDim strNewFile As StringstrFile = C:test.docstrNewFile = C:Pr
13、ogram Filestest.docSet fs = CreateObject(Scripting.FileSystemObject)fs.CopyFile strFile, strNewFileMsgBox 已經創(chuàng)建了指定文件的副本 .Set fs = NothingEnd SubCreateTextFile 方法CreateTextFile 方法創(chuàng)建一個新的文件并返回其 TextStream 對象,其語法為:oFileSysObj.CreateTextFile Filename ,Overwrite,Unicode其中, oFileSysObj 代表任何能夠返回 FileSystemOb
14、ject 對象的對象變量。參數(shù) Filename 必需,代表任何有效 文件名, String 類型。在 Filename 中不允許使用通配符。 Filename 可以是相對路徑也可以是絕對路徑,如果沒有指定 路徑,則使用應用程序的當前驅動器或文件夾作為路徑。如果指定的路徑不存在,則該方法將失敗。參數(shù) Overwrite 可選,作為一個標志,指定是否覆蓋一個具有相同文件名的現(xiàn)有文件, Boolean 類型。默認值為 False 。參數(shù)Unicode可選,作為一個標志,指明用 Unicode格式還是ASC H格式寫文件,Boolean類型。如果設置為 True,則以Unicode格式創(chuàng)建文件,否則
15、創(chuàng)建一個 ASC H文本文件。默認值為False。只有寫操作才能使新創(chuàng)建的文本文件自動打開,如果以后希望讀取該文件,則必須選關閉它再以讀模式重新打開 該文件。如果參數(shù) Filename 中指定的路徑設置為只讀,則不論參數(shù) Overwrite 的值如保, CreateTextFile 方法都將失敗。如果用戶有充分的權限,那么參數(shù) Filename 可以是網絡路徑或共享名,例如:CreateTextFile NTSERV1RootTestmyFile.doc必須使用 Set 語句將 TextStream 對象賦值給局部對象變量。MoveFile 方法MoveFile 方法用來移動文件,將文件從一個
16、文件夾移動到另一個文件夾。其語法為:oFileSysObj.MoveFile source,destination其中, oFileSysObj 代表任何能夠返回 FileSystemObject 對象的對象變量。參數(shù) source 必需,指定要移動的文 件的路徑, String 類型。參數(shù) destination 必需,指定文件移動操作中的目標位置的路徑, String 類型。如果 Source 包含通配符或者 destination 以路徑分隔符結尾, 則認為 destination 是一個路徑,否則認為 destination 的最后一部分是文件名。如果目標文件已經存在,則將出現(xiàn)一個錯誤
17、。source 可以包含通配符,但只能出現(xiàn)在它的最后一部分中。destination 參數(shù)不能包含通配符。source 或 destination 可以是相對路徑或絕對路徑,可以是網絡路徑或共享名。MoveFile 方法在開始操作前先解析 source 和 destination 這兩個參數(shù)。DeleteFile 方法DeleteFile 方法刪除指定的一個或多個文件。其語法為:oFileSysObj.DeleteFile FileSpec,Force其中,oFileSysObj代表任何能夠返回FileSystemObject對象的對象變量。參數(shù)FileSpec必需,代表要刪除的單 個文件或多
18、個文件的名稱和路徑, String 類型,可以在路徑的最后部分包含通配符,可以為相對路徑或絕對路徑。如果 在FileSpec中只有文件名,則認為該文件在應用程序的當前驅動器和文件夾中。參數(shù)Force可選,如果將其設置為True,則忽略文件的只讀標志并刪除該文件, Boolean 類型,默認值為 False。如果指定要刪除的文件已經打開,該方法將失敗并出現(xiàn)一個“Permission Denied 錯”誤。如果找不到指定的文件,則該方法失敗。如果在刪除多個文件的過程中出現(xiàn)錯誤, DeleteFile 方法將立即停止刪除操作,即不能刪除余下的文件部分。該 方法不具有撤銷產生錯誤前文件刪除操作的返回功
19、能。如果用戶有充分的權限,源路徑或目標路徑可以是網絡路徑或共享名。例如:DeleteFileMyFile.docDeleteFile 方法永久性地刪除文件,并不把這些文件移到回收站中。示例Sub DeleteFile()Dim fs As FileSystemObjectSet fs = New FileSystemObjectfs.DeleteFile C:test.docMsgBox 刪除了該文件 .End SubDriveExists 方法DriveExists 方法用來判斷在本地計算機或者網絡上是否存在指定的磁盤,若存在則返回True 。其語法為:oFileSysObj.DriveEx
20、ists (DriveSpec)其中, oFileSysObj 代表任何能夠返回 FileSystemObject 對象的對象變量。參數(shù) DriveSpec 必需,代表路徑或驅動器名,String類型。如果DriveSpec是一個Windows驅動器名,則其后面不需要跟冒號,例如“C和“C ”是一樣的。DriveExists 方法不能返回可移動驅動器的當前狀態(tài),要實現(xiàn)這一目的,必須使用指定驅動器的 IsReady 屬性。如果用戶有充分的權限, DriveSpec 可以是網絡路徑或共享名,例如:If ofs.DriveExists(NTESERV1d$) Then在調用位于某驅動器上一個遠程 A
21、ctiveX 服務器中的函數(shù)前, 最好先使用 DriveExists 方法檢測網絡上是否存在該驅動器。示例Function DriveExists(disk)Dim fs As ObjectDim strMsg As StringSet fs = CreateObject(Scripting.FileSystemObject)If fs.DriveExists(disk) ThenstrMsg = 驅動器 & UCase(disk) & 盤已存在 .ElsestrMsg = UCase(disk) & 盤未找到 .End IfDriveExists = strMsgEnd FunctionGe
22、tDrive 方法GetDrive 方法返回 Drive 對象,即獲得對指定驅動器的 Drive 對象的引用。其語法為:oFileSysObj.GetDrive (drivespecifier)其中,oFileSysObj代表任何能夠返回FileSystemObject對象的對象變量。參數(shù)drivespecifier必需,代表驅動器 名、共享名或網絡路徑, String 類型。如果 drivespecifier 是一個共享名或網絡路徑, GetDrive 確認它是 Drive 對象創(chuàng)建 進程的一部分,否則會產生運行時錯誤 “找不到路徑”。如果指定的驅動器沒有連接上或者不存在, 則會出現(xiàn)運行時錯
23、誤 “設 備不可用 ”。如果要從路徑中導出 drivespecifier 字符串,應該首先用 GetAbsolutePathName 來確保驅動器是路徑的一部分, 然后在調用 GetDriveName 從全限定路徑中提取出驅動器之前,用 FolderExists 方法檢驗路徑是否有效,例如:Dim oFileSys As New FileSystemObjectDim oDrive As DrivesPath=oFileSys.GetAbsolutePathName(sPath)If oFileSys.FolderExists(sPath) Thenset oDrive=oFileSys.Ge
24、tDrive(oFileSys.GetDriveName(sPath)End If如果 driverspecifier 是一個網絡驅動器或共享,在調用 GetDrive 方法之前,應該用 DriveExists 方法檢驗所需的 驅動器是否可用。必須用 Set 語句將 Drive 對象賦給局部對象變量。示例Sub DriveInfo()Dim fs, disk, infoStr, strDiskNamestrDiskName = InputBox( 輸入驅動器盤符 :, 驅動器名稱 , C:)Set fs = CreateObject(Scripting.FileSystemObject)Set
25、 disk = fs.GetDrive(fs.GetDriveName(strDiskName)infoStr = 驅動器 : & UCase(strDiskName) & vbCrLfinfoStr = infoStr & 驅動器盤符 : & UCase(disk.DriveLetter) & vbCrLfinfoStr = infoStr & 驅動器類型 : & disk.DriveType & vbCrLfinfoStr = infoStr & 驅動文件系統(tǒng) : & disk.FileSystem & vbCrLfinfoStr = infoStr & 驅動器系列號 : & disk.S
26、erialNumber & vbCrLfinfoStr = infoStr & 字節(jié)的總大小 : & FormatNumber(disk.TotalSize / 1024, 0) & kb & vbCrLfinfoStr = infoStr & 驅動器中的自由空間 : & FormatNumber(disk.FreeSpace / 1024, 0) & kb & vbCrLfMsgBox infoStr, vbInformation, 驅動器信息 End SubGetDriveName 方法GetDriveName 方法返回一個包含硬盤名稱或者網絡共享名稱的字符串。即返回給定路徑的驅動器名,如
27、果從給 定的路徑中不能確定驅動器名,則返回一個零長字符串( ”)”。其語法為:oFileSysObj.GetDriveName (Path)其中, oFileSysObj 代表任何能夠返回 FileSystemObject 對象的對象變量。參數(shù) Path 必需,指定路徑, String 類型。GetDriveName 不能檢驗 Path 中是否存在指定的驅動器。 Path 可以是網絡驅動器或共享。示例Function DriveName(disk)Dim fs As ObjectDim strDiskName As StringSet fs = CreateObject(Scripting.F
28、ileSystemObject)strDiskName = fs.GetDriveName(disk)DriveName = strDiskNameEnd FunctionGetExtensionName 方法返回給定路徑中文件的擴展名。其語法為:oFileSysObj.GetExtensionName (Path)其中,oFileSysObj代表任何能夠返回FileSystemObject對象的對象變量。參數(shù)Path必需,表示路徑說明,String 類型。如果不能確定 Path 中的擴展名,則返回一個零長字符串。GetExtensionName 方法不能檢驗 Path 是否有效, Path
29、可以為網絡路徑或共享。 GetExtensionName 沒有智能 功能,它簡單地解析一個字符串,并返回 Path 最后部分中最后一個點后的文本。FolderExists 方法FolderExists 方法可以判斷指定的文件夾是否存在,若存在則返回 True 。其語法為:oFileSysObj.FolderExists(FolderSpec)其中, oFileSysObj 代表任何能夠返回 FileSystemObject 對象的對象變量。參數(shù) FolderSpec 指定文件夾的完整 路徑, String 類型,不能包含通配符。如果用戶有充分的權限, FolderSpec 可以是網絡路徑或共享
30、名,例如:If ofs.FileExists (NTSERV1d$TestPath) Then示例Sub IfFolderExists()Dim fs As ObjectSet fs = CreateObject(Scripting.FileSystemObject)MsgBox fs.FolderExists(C:Program Files)End SubGetAbsolutePathName 方法將相對路徑轉變?yōu)橐粋€全限定路徑(包括驅動器名),返回一個字符串,包含一個給定的路徑說明的絕對路徑。 其語法為:oFileSysObj.GetAbsolutePathName (Path)其中,oF
31、ileSysObj代表任何能夠返回FileSystemObject對象的對象變量。參數(shù)Path必需,代表路徑說明,String 類型?!胺祷禺斍拔募A的驅動器名和完整路徑。:返回當前文件夾的父文件夾的驅動器名和路徑。“filename返回當前文件夾中的文件的驅動器名、路徑及文件名。所有相對路徑名均以當前文件夾為基準。如果沒有明確地提供驅動器作為 Path 的一部分,就以當前驅動器作為 Path 參數(shù)中的驅動器。在 Path 中可以包 含任意個通配符。對于映射網絡驅動器和共享而言,這種方法不能返回完整的網絡地址,而是返回全限定的本地路徑和本地驅動器 名。GetAbsolutePathName 不
32、能檢驗指定路徑中是否存在某個給定的文件或文件夾。GetBaseName 方法返回路徑的最后部分的名稱,不包含擴展名。其語法為:oFileSysObj.GetBaseName (Path)其中,oFileSysObj代表任何能夠返回FileSystemObject對象的對象變量。參數(shù)Path必需,代表路徑說明,String 類型。 Path 中最后部分的文件擴展名不包含在返回的字符串中。GetBaseName 方法不能檢驗 Path 中是否存在給定的文件或文件夾。 GetBaseName 方法沒有舍去文件擴展名并 返回 Path 的基本名稱的智能功能。也就是說,它不能識別路徑的最后部分是路徑還是
33、文件名。如果最后部分包括一個 或多個點它僅僅刪除最后一個占以及該點后的文本。所以如果Path為“,”GetBaseName方法返回一個空字符串; 如果 Path 為“.,”GetBaseName 方法返回 “。. ”換句話說,它只不過是一個字符串處理函數(shù),而不是一個文件函數(shù)。GetFolder 方法GetFolder 方法返回 Folder 對象。其語法為:oFileSysObj.GetFolder (FolderPath)其中,oFileSysObj代表任何能返回FileSystemObject對象的對象變量。參數(shù)FolderPath必需,指定所需文件夾 的路徑, String 類型,可以為
34、相對路徑或絕對路徑。如果 FolderPath 是共享名或網絡路徑, GetFolder 確認該驅動器或 共享是 File 對象創(chuàng)建進程的一部分。如果 FolderPath 的任何部分不能連接或不存在,就會產生一個錯誤。要獲得所需的 Path 字符串,首先應該使用 GetAbsolutePathName 方法。如果 FolderPath 包含一個網絡驅動器 或共享,可以在調用 GetFolder 方法之前使用 DriveExists 方法確認指定的驅動器是否可用。由于 GetFolder 方法要求 FolderPath 是一個有效文件夾的路徑,所以應調用 FolderExists 方法來檢驗
35、FolderPath 是否存在。必須使用 Set 語句將 Folder 對象賦給一個局部對象變量。示例Sub FilesInFolder()Dim fs As ObjectDim objFolder As ObjectDim objFile As ObjectSet fs = CreateObject(Scripting.FileSystemObject)Set objFolder = fs.GetFolder(C:)Workbooks.AddFor Each objFile In objFolder.FilesActiveCell.SelectSelection.Formula = objF
36、ile.NameActiveCell.Offset(0, 1).Range(A1).SelectSelection.Formula = objFile.TypeActiveCell.Offset(1, -1).Range(A1).SelectNextColumns(A:B).SelectSelection.Columns.AutoFitEnd SubGetParentFolderName 方法返回給定路徑中最后部分前的文件夾名,其語法為:oFileSysObj.GetParentFolderName (Path)其中,oFileSysObj代表任何能夠返回FileSystemObject對象的
37、對象變量。參數(shù)Path必需,指定路徑說明,String 類型。如果從 Path 中不能確定父文件夾名,就返回一個零長字符串( ”)”。 Path 可以為相對路徑或絕對路徑。可以是 網絡驅動器或共享。GetParentFolderName 方法不能檢驗 Path 的某個部分是否存在。GetParentFolderName 方法認為 Path 中不屬于驅動器說明的那部分字符串除了最后一部分外余下的字符串就是 父文件夾。除此之外它不做任何其他檢測,更像是一個字符串解析和處理例程而不是與對象處理有關的例程。GetSpecialFolder 方法GetSpecialFolder方法返回操作系統(tǒng)文件夾路徑
38、,其中0代表Windows文件夾,1代表System (系統(tǒng))文件夾, 2代表Temp (臨時)文件夾。其語法為:oFileSysObj.GetSpecialFolder (SpecialFolder)其中, oFileSysObj 代表任何能夠返回 FileSystemObject 對象的對象變量。參數(shù) SpecialFolder 必需,為特殊的 文件夾常數(shù),表示三種特殊系統(tǒng)文件夾中其中一個的值??梢允褂?Set 語句將 Folder 對象賦給一個局部對象變量, 但是如果只對檢索特殊的文件夾感興趣, 就可以使用下 列語句來實現(xiàn):sPath=oFileSys.GetSpecialFolder
39、(iFolderConst)或:sPath=oFileSys.GetSpecialFolder (iFolderConst).Path由于 Path 屬性是 Folder 對象的缺省屬性, 所認第一個語句有效。 因為不是給一個對象變量賦值, 所以賦給 sPath 的值是缺省的 Path 屬性值,而不是對象引用。示例Sub SpecialFolders()Dim fs As ObjectDim strWindowsFolder As StringDim strSystemFolder As StringDim strTempFolder As StringSet fs = CreateObjec
40、t(Scripting.FileSystemObject)strWindowsFolder = fs.GetSpecialFolder(0)strSystemFolder = fs.GetSpecialFolder(1)strTempFolder = fs.GetSpecialFolder(2)MsgBox strWindowsFolder & vbCrLf & strSystemFolder & vbCrLf _& strTempFolder, vbInformation + vbOKOnly, Special FoldersEnd SubGetTempName 方法返回系統(tǒng)創(chuàng)建的一個臨時文
41、件或文件夾名。其語法為:oFileSysObj.GetTempName其中, oFileSysObj 代表任何能夠返回 FileSystemObject 對象的對象變量。GetTempName 方法不能創(chuàng)建臨時文件或文件夾, 它僅僅提供一個可用于 CreateTextFile 方法的文件或文件夾名 一般來說,不必創(chuàng)建自已的臨時文件名。 Windows 在 Windows API 中提供了一種算法來創(chuàng)建特殊的臨時文件或 文件夾名,這樣 Windows 才能識別它們。 GetTempName 很好地包裝了 GetTempFilename API 函數(shù)。CreateFolder 方法CreateFo
42、lder 方法用于在指定的路徑下創(chuàng)建一個新文件夾,并返回其 Folder 對象。其語法為: oFileSysObj.CreateFolder (Path)其中, oFileSysObj 代表任何能夠返回 FileSystemObject 對象的對象變量。參數(shù) Path 必需,為一個返回要創(chuàng)建 的新文件夾名的表達式, String 類型。 Path 指定的路徑可以是相對路徑也可以是絕對路徑,如果沒有指定路徑則使用當 前驅動器和目錄作為路徑。在新的文件夾名中不能使用通配符。如果參數(shù) Path 指定的路徑為只讀,則 CreateFolder 方法將失??;如果參數(shù) Path 指定的文件夾已經存在,就會
43、 產生運行時錯誤 “文件已經存在 ”。如果用戶有充分的權限,則參數(shù) Path 可以指定為網絡路徑或共享名,例如:CreateFolder NTSERV1RootTestnewFolder在實際使用時,必須使用 Set 語句將 Folder 對象賦給對象變量,例如:Dim oFileSys As New FileSystemObjectDim oFolder As FolderSet oFolder=oFileSys.CreateFolder(MyFolder)示例Sub MakeNewFolder()Dim fs, objFolderSet fs = CreateObject(Scriptin
44、g.FileSystemObject)Set objFolder = fs.CreateFolder(C:TestFolder)MsgBox 創(chuàng)建了一個名稱為 & objFolder.Name & 的文件夾.End SubCopyFolder 方法CopyFolder 方法用于復制文件夾,即將一個文件夾的內容(包括其子文件夾)復制到其他位置。其語法為:oFileSysObj.CopyFolder Source,Destination,OverwriteFiles其中,參數(shù) oFileSysObj 代表任何能夠返回 FileSystemObject 對象的對象變量。參數(shù) Source 必需,指定
45、要復制 的文件夾的路徑和文件夾名, String 類型,必須使用通配符或者非路徑分隔符來結束。參數(shù) Destination 必需,指定文件 夾復制操作的目標文件夾的路徑, String 類型。參數(shù) OverwriteFiles 可選,表示是否被覆蓋一個現(xiàn)有文件的標志, True 表示覆蓋, False 表示不覆蓋, Boolean 類型。通配符只能在參數(shù) Source 中使用,但是只能放在最后的組件中。在參數(shù) Destination 中不能使用通配符。除非不允許使用通配符, 否則就可以把源文件夾中的所有子文件夾和文件都復制到 Destination 指定的文件夾中, 也就是說 CopyFold
46、er 方法是遞歸的。如果參數(shù) Destination 以一個路徑分隔符結束或者參數(shù) Source 以一個通配符結束, CopyFolder 方法就認為參數(shù) Source 中的指定的文件夾存在于參數(shù) Destination 中,否則就創(chuàng)建這樣一個文件夾。例如,假設有如下的文件夾結構:CopyFolder C:Rootone*,C:RootTwo產生如下的文件夾結構:CopyFolder C:Rootone,C:RootTwo產生如下的文件夾結構:如果參數(shù) Destination 指定的目標路徑或任意文件被設置成只讀屬性,則不論 OverwriteFiles 的值如何, CopyFolder 方法
47、者將失效。如果 OverwriterFiles 設置為 False ,而參數(shù) Source 指定的源文件夾或任何文件存在于參數(shù) Destination 中,將產 生運行時錯誤 “文件已經存在 ”。如果在復制多個文件夾時出現(xiàn)錯誤, CopyFolder 方法立即停止復制操作,不再復制余下要復制的文件。該方法 不具有撤銷產生錯誤前文件復制操作的返回功能。如果用戶有充分的權限, source 或 destination 都可以是網絡路徑或共享名,例如:CopyFolder C:Rootone,NTSERV1d$RootTwoSub MakeFolderCopy()Dim fs As FileSyst
48、emObjectSet fs = New FileSystemObjectIf fs.FolderExists(C:TestFolder) Thenfs.CopyFolder C:TestFolder, C:FinalFolderMsgBox 已復制該文件夾 .End IfEnd SubMoveFolder 方法MoveFolder 方法用來移動文件夾, 將文件夾及其文件和子文件夾一起從某個位置移動到另一個位置。 其語法為: oFileSysObj.MoveFolder source,destination其中, oFileSysObj 代表任何能夠返回 FileSystemObject 對象
49、的對象變量。參數(shù) Source 指定要移動的文件夾的 路徑, String 類型。參數(shù) destination 指定文件夾移動操作中目標位置的路徑, String 類型。Source 必須以通配符或非路徑分隔符結束,可以使用通配符,但必須出現(xiàn)在最后一部分中。 destination 不能使 用通配符。 除非不允許使用通配符, 否則源文件夾中所有的子文件夾和文件都被復制到 destination 指定的位置,也就是 說 MoveFolder 方法是遞歸的。如果 destination 用路徑分隔符結束或者 source 用通配符結束, MoveFolder 就認為 source 中指定的文件夾存
50、在 于 destination 中。例如,假設有如下文件夾結構:MoveFolder C:Rootone*,C:RootTow產生如下文件夾結構:MoveFolder C:Rootone,C:RootTwo產生如下文件夾結構:Source 和 destination 可以為絕對路徑或相對路徑,可以為網絡路徑或共享名。MoveFile 方法在開始操作前先解析 source 和 destination 這兩個參數(shù)。DeleteFolder 方法DeleteFolder 方法用于刪除指定的文件夾及其所有的文件和子文件夾。其語法為:oFileSysObj.DeleteFolder FileSpec,F
51、orce其中,oFileSysObj代表任何能夠返回FileSystemObject對象的對象變量。參數(shù)FileSpec必需,指定要刪除的文 件夾的名稱和路徑, String 類型。在參數(shù) FileSpec 中,可以在路徑的最后部分包含通配符,但不能用路徑分隔符結束, 可以為相對路徑或絕對路徑。參數(shù)Force可選,Boolean類型,如果設置為True,將忽略文件的只讀標志并刪除這個文件。默認為 False。如 果參數(shù) Force 設置為 False 并且文件夾中的任意一個文件為只讀,則該方法將失敗。如果找不到指定的文件夾,則該方 法失敗。如果指定的文件夾中有文件已經打開,則不能完成刪除操作,
52、且產生一個“Permisson Denied錯誤。DeleteFolder 方法刪除指定文件夾中的所有內容,包括其他文件夾及其內容。如果在刪除多個文件或文件夾時出現(xiàn)錯誤, DeleteFolder 方法將立即停止刪除操作,即不能刪除余下的文件夾或 文件。該方法不具有撤銷產生錯誤前文件夾刪除操作的返回功能。DeleteFolder 方法永久性刪除文件夾,并不把它們移到回收站中。如果用戶有充分的權限,源路徑和目標路徑可以是網絡路徑或共享名,例如:DeleteFolder RootTest示例Sub RemoveFolder()Dim fs As FileSystemObjectSet fs = New FileSystemObjectIf fs.FolderExists(C:TestFolder) Thenfs.DeleteFolder C:TestFolderMsgBox 該文件夾已經被刪除 .End IfEnd SubOpenTextFile 方法Op
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第1課 中華傳統(tǒng)文化的內涵與特點 教學設計-2023-2024學年高中歷史統(tǒng)編版(2019)選擇性必修3
- 渣土及建筑廢棄物資源化利用項目可行性研究報告完整立項報告
- 粵教版 信息技術 必修 5.1 認識信息資源管理教學設計
- 科技創(chuàng)新中心項目實施計劃與時間節(jié)點
- 信息技術必修2信息系統(tǒng)與社會4.2《信息系統(tǒng)安全技術》教學設計
- 健身房設施居間合同模板
- 地方高校轉型中的問題與挑戰(zhàn)
- 換熱器項目可行性研究報告
- 2025年度年度賣房合同:帶產權車位及游泳池
- 2025年度股權協(xié)議書與合伙人協(xié)議書綜合實施策略
- 2024年廣西職業(yè)院校技能大賽中職組《智慧物流作業(yè)》模塊MC競賽樣題
- ALC板施工施工方案及工藝要求
- 人事專員簡歷模板
- 超聲心動圖診斷心肌病臨床應用指南解讀
- 地面工程油氣集輸工藝介紹
- 漂流規(guī)劃設計方案
- 移動取消寬帶委托書
- 國際市場營銷(高職)教學教案
- 消防設施維保服務投標方案
- 城市軌道交通車輛電氣控制 課件 趙麗 第1-4章 城市軌道交通車輛電氣控制系統(tǒng)構成、城市軌道交通車輛輔助供電系統(tǒng)、電動列車常用電氣控制系統(tǒng)及其控制方法
- (2024年)新版黃金基礎知識培訓課件
評論
0/150
提交評論