FileSystemObject 的例子(處理驅動器、資料夾、檔案) (轉)
處理器和夾
使用 FileSystem () ,可以有計劃地處理驅動器和資料夾,就像在 中互動式地處理它們一樣。可以複製和移動資料夾,獲取有關驅動器和資料夾的資訊,等等。
獲取有關驅動器的資訊
可以用 Drive 物件來獲得有關各種驅動器的資訊,這些驅動器是實物地或透過連線到上的。它的屬性可以用來獲得下面的資訊內容:
請考察5.CHM::/htm/sgFSOSample.htm#DriveInfo">示例程式碼,來領會如何在 FileSystemObject 中使用這些屬性。
- 驅動器的總容量,以位元組為單位(TotalSize 屬性)
- 驅動器的可用空間是多少,以位元組為單位(AvailableSpace 或 FreeSpace 屬性)
- 哪個號被賦給了該驅動器(DriveLetter 屬性)
- 驅動器的型別是什麼,如可移動的、固定的、網路的、CD-ROM 或 RAM (DriveType 屬性)
- 驅動器的序列號(SerialNumber 屬性)
- 驅動器使用的檔案系統型別,如 、FAT32、NTFS 等等(FileSystem 屬性)
- 驅動器是否可以使用(IsReady 屬性)
- 共享和/或卷的名字(ShareName 和 VolumeName 屬性)
- 驅動器的路徑或根資料夾(Path 和 Folder 屬性)
Drive 物件的用法示例
使用 Drive 物件來收集有關驅動器的資訊。在下面的程式碼中,沒有對實際的 Drive 物件的引用;相反,使用 GetDrive 方法來獲得現有 Drive 物件的引用(在這個例子中就是 drv)。下面示例示範瞭如何在 中使用 Drive 物件:
下面的程式碼說明在 JScript 中實現同樣的功能: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 & "
" s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0) s = s & " Kb" & "
" s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0) s = s & " Kb" & "
" Response.Write s End Subfunction ShowDriveInfo1(drvPath) { var fso, drv, s =""; fso = new Object("Scripting.FileSystemObject"); drv = fso.GetDrive(fso.GetDriveName(drvPath)); s += "Drive " + drvPath.toUpperCase()+ " - "; s += drv.VolumeName + "
"; s += "Total Space: " + drv.TotalSize / 1024; s += " Kb" + "
"; s += "Free Space: " + drv.FreeSpace / 1024; s += " Kb" + "
"; 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 物件,來操作資料夾和獲得有關它們的資訊:
下面的示例顯示如何在 JScript 中使用 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 & "
" ' 列印驅動器名字。 Response.Write "Contained on drive " & fldr.Drive & "
" ' 列印根檔名。 If fldr.IsRootFolder = True Then Response.Write "This is the root folder." & ""
"
" Else Response.Write "This folder isn't a root folder." & "
" End If ' 用 FileSystemObject 物件建立新的資料夾。 fso.CreateFolder ("C:Bogus") Response.Write "Created folder C:Bogus" & "
" ' 列印資料夾的基本名字。 Response.Write "Basename = " & fso.GetBaseName("c:bogus") & "
" ' 刪除新建立的資料夾。 fso.DeleteFolder ("C:Bogus") Response.Write "Deleted folder C:Bogus" & "
" End Subfunction ShowFolderInfo() { var fso, fldr, s = ""; // 獲得 FileSystemObject 的例項。 fso = new ActiveXObject("Scripting.FileSystemObject"); // 獲得 Drive 物件。 fldr = fso.GetFolder("c:"); // 列印父資料夾名。 Response.Write("Parent folder name is: " + fldr + "
"); // 列印驅動器名字。 Response.Write("Contained on drive " + fldr.Drive + "
"); // 列印根檔名。 if (fldr.IsRootFolder) Response.Write("This is the root folder."); else Response.Write("This folder isn't a root folder."); Response.Write("
"); // 用 FileSystemObject 物件建立新的資料夾。 fso.CreateFolder ("C:Bogus"); Response.Write("Created folder C:Bogus" + "
"); // 列印資料夾的基本名。 Response.Write("Basename = " + fso.GetBaseName("c:bogus") + "
"); // 刪除新建立的資料夾。 fso.DeleteFolder ("C:Bogus"); Response.Write("Deleted folder C:Bogus" + "
"); }
處理檔案
有兩種主要的型別:
- 建立、新增或刪除資料,以及讀取檔案
- 移動、複製和刪除檔案
建立檔案
建立空文字檔案(有時被叫做“文字流”)有三種方法。第一種方法是用 CreateTextFile 方法。 下面的示例示範了在 VBScript 中如何用這種方法來建立文字檔案:
要在 JScript 中用這種方法,則使用下面的程式碼:Dim fso, f1 Set fso = CreateObject("Scripting.FileSystemObject") Set f1 = fso.CreateTextFile("c:testfile.txt", True)
請考察,來領會如何在 FileSystemObject 中使用 CreateTextFile 方法。var fso, f1; fso = new ActiveXObject("Scripting.FileSystemObject"); f1 = fso.CreateTextFile("c:testfile.txt", true);
建立文字檔案的第二種方法是,使用 FileSystemObject 物件的 OpenTextFile 方法,並設定 ForWriting 標誌。在 VBScript 中,程式碼就像下面的示例一樣:
要在 JScript 中使用這種方法來建立文字檔案,則使用下面的程式碼:Dim fso, ts Const ForWriting = 2 Set fso = CreateObject("Scripting. FileSystemObject") Set ts = fso.OpenTextFile("c:test.txt", ForWriting, True)
建立文字檔案的第三種方法是,使用 OpenAsTextStream 方法,並設定 ForWriting 標誌。要使用這種方法,在 VBScript 中使用下面的程式碼:var fso, ts; var ForWriting= 2; fso = new ActiveXObject("Scripting.FileSystemObject"); ts = fso.OpenTextFile("c:test.txt", ForWriting, true);
在 JScript 中,則使用下面示例中的程式碼:Dim fso, f1, ts Const ForWriting = 2 Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateTextFile ("c:test1.txt") Set f1 = fso.GetFile("c:test1.txt") Set ts = f1.OpenAsTextStream(ForWriting, True)
var fso, f1, ts; var ForWriting = 2; fso = new ActiveXObject("Scripting.FileSystemObject"); fso.CreateTextFile ("c:test1.txt"); f1 = fso.GetFile("c:test1.txt"); ts = f1.OpenAsTextStream(ForWriting, true);
新增資料到檔案中
一旦建立了文字檔案,使用下面的三個步驟向檔案新增資料:
要開啟現有的檔案,則使用 FileSystemObject 物件的 OpenTextFile 方法或 File 物件的 OpenAsTextStream 方法。
- 開啟文字檔案。
- 寫入資料。
- 關閉檔案。
要寫資料到開啟的文字檔案,則根據下表所述任務使用 TextStream 物件的 Write、WriteLine 或 WriteBlankLines 方法。
任務方法向開啟的文字檔案寫資料,不用後續一個新行字元。Write向開啟的文字檔案寫資料,後續一個新行字元。WriteLine向開啟的文字檔案寫一個或多個空白行。WriteBlankLines
請考察,來領會如何在 FileSystemObject 物件中使用 Write、WriteLine 和 WriteBlankLines 方法。
要關閉一個開啟的檔案,則使用 TextStream 物件的 Close 方法。
請考察,來領會如何在 FileSystemObject 中使用 Close 方法。
注意 新行字元包含一個或幾個字元(取決於),以把游標移動到下一行的開始位置(回車/換行)。注意某些字串末尾可能已經有這個非列印字元了。
下面的 VBScript 例子示範瞭如何開啟檔案,和同時使用三種寫方法來向檔案新增資料,然後關閉檔案:
這個示例示範了在 JScript 中如何使用這三個方法:Sub CreateFile() Dim fso, tf Set fso = CreateObject("Scripting.FileSystemObject") Set tf = fso.CreateTextFile("c:testfile.txt", True) ' 寫一行,並且帶有新行字元。 tf.WriteLine("Testing 1, 2, 3.") ' 向檔案寫三個新行字元。 tf.WriteBlankLines(3) ' 寫一行。 tf.Write ("This is a test.") tf.Close End Sub
function CreateFile() { var fso, tf; fso = new ActiveXObject("Scripting.FileSystemObject"); tf = fso.CreateTextFile("c:testfile.txt", true); // 寫一行,並且帶有新行字元。 tf.WriteLine("Testing 1, 2, 3.") ; // 向檔案寫三個新行字元。 tf.WriteBlankLines(3) ; // 寫一行。 tf.Write ("This is a test."); tf.Close(); }
讀取檔案
要從文字檔案讀取資料,則使用 TextStream 物件的 Read、ReadLine 或 ReadAll 方法。下表描述了不同的任務應使用哪種方法。任務方法從檔案讀取指定數量的字元。Read讀取一整行(一直到但不包括新行字元)。ReadLine讀取文字檔案的整個內容。ReadAll
請考察,來領會如何在 FileSystemObject 中使用 ReadAll 和 ReadLine 方法。
如果使用 Read 或 ReadLine 方法,並且想跳過資料的特殊部分,則使用 Skip 或 SkipLine 方法。read 方法的結果文字存在一個字串中,該字串可以顯示在一箇中,也可以用字串(如 Left、Right 和 Mid)來分析,連線等等。
下面的 VBScript 示例示範瞭如何開啟檔案,和如何寫資料到檔案中並從檔案讀取資料:
下面的程式碼示範了在 JScript 中做同樣的事:Sub ReadFiles Dim fso, f1, ts, s Const ForReading = 1 Set fso = CreateObject("Scripting.FileSystemObject") Set f1 = fso.CreateTextFile("c:testfile.txt", True) ' 寫一行。 Response.Write "Writing file
" f1.WriteLine "Hello World" f1.WriteBlankLines(1) f1.Close ' 讀取檔案的內容。 Response.Write "Reading file
" Set ts = fso.OpenTextFile("c:testfile.txt", ForReading) s = ts.ReadLine Response.Write "File contents = '" & s & "'" ts.Close End Sub
function ReadFiles() { var fso, f1, ts, s; var ForReading = 1; fso = new ActiveXObject("Scripting.FileSystemObject"); f1 = fso.CreateTextFile("c:testfile.txt", true); // 寫一行。 Response.Write("Writing file
"); f1.WriteLine("Hello World"); f1.WriteBlankLines(1); f1.Close(); // 讀取檔案的內容。 Response.Write("Reading file
"); ts = fso.OpenTextFile("c:testfile.txt", ForReading); s = ts.ReadLine(); Response.Write("File contents = '" + s + "'"); ts.Close(); }移動、複製和刪除檔案
FSO 物件模式各有兩種方法移動、複製和刪除檔案,如下表所述。任務方法移動檔案File.Move 或 FileSystemObject.MoveFile複製檔案File.Copy 或 FileSystemObject.CopyFile刪除檔案File.Delete 或 FileSystemObject.DeleteFile
請考察,來領會在 FileSystemObject 中刪除檔案的兩種方法。
下面的 VBScript 示例,在驅動器 C 的根目錄中建立一個文字檔案,向其中寫一些資訊,然後把它移動到 tmp 目錄中,並在 temp 中做一個,最後把它們從兩個目錄中刪掉。
要執行下面的示例,需要先在驅動器 C 的根目錄中建立 tmp 和 temp 目錄:
下面的程式碼示範了在 JScript 中做同樣的事:Sub ManipFiles Dim fso, f1, f2, s Set fso = CreateObject("Scripting.FileSystemObject") Set f1 = fso.CreateTextFile("c:testfile.txt", True) Response.Write "Writing file
" ' 寫一行。 f1.Write ("This is a test.") ' 關閉檔案。 f1.Close Response.Write "Moving file to c:tmp
" ' 獲取 C 的根目錄(C:)中的檔案的控制程式碼。 Set f2 = fso.GetFile("c:testfile.txt") ' 把檔案移動到 tmp 目錄。 f2.Move ("c:tmptestfile.txt") Response.Write "Copying file to c:temp
" ' 把檔案複製到 temp 目錄。 f2.Copy ("c:temptestfile.txt") Response.Write "Deleting files
" ' 獲得檔案當前位置的控制程式碼。 Set f2 = fso.GetFile("c:tmptestfile.txt") Set f3 = fso.GetFile("c:temptestfile.txt") ' 刪除檔案。 f2.Delete f3.Delete Response.Write "All done!" End Sub
function ManipFiles() { var fso, f1, f2, s; fso = new ActiveXObject("Scripting.FileSystemObject"); f1 = fso.CreateTextFile("c:testfile.txt", true); Response.Write("Writing file
"); // 寫一行。 f1.Write("This is a test."); // 關閉檔案。 f1.Close(); Response.Write("Moving file to c:tmp
"); // 獲取 C 的根目錄(C:)中的檔案的控制程式碼。 f2 = fso.GetFile("c:testfile.txt"); // 把檔案移動到 tmp 目錄。 f2.Move ("c:tmptestfile.txt"); Response.Write("Copying file to c:temp
"); // 把檔案複製到 temp 目錄。 f2.Copy ("c:temptestfile.txt"); Response.Write("Deleting files
"); // 獲得檔案當前位置的控制程式碼。 f2 = fso.GetFile("c:tmptestfile.txt"); f3 = fso.GetFile("c:temptestfile.txt"); // 刪除檔案。 f2.Delete(); f3.Delete(); Response.Write("All done!"); }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992188/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Excel VBA 利用FileSystemObject處理檔案ExcelObject
- Python 檔案(file)處理 例子Python
- xcopy 實現批處理拷貝檔案或資料夾
- 利用 python 遍歷多級資料夾處理不同檔案Python
- 用一條命令處理分別改變檔案和資料夾的許可權(轉)
- 基於MFC的大型資料檔案處理方法 (轉)
- C++ 檔案、資料夾、路徑處理函式庫:boost::filesystemC++函式
- UNIX的檔案處理(轉)
- 【解決方案】基於資料庫驅動的自定義 TypeHandler 處理器資料庫
- win10驅動資料夾在哪裡_win10顯示卡驅動在哪個資料夾Win10
- 使用資料流的思想處理檔案
- 含有特殊字元的資料檔案處理字元
- TListView元件顯示資料夾中的檔案 (轉)View元件
- 畸形檔案 資料夾
- 誤刪資料庫資料檔案的處理方法資料庫
- 獲取資料夾及其子資料夾下的所有檔案
- win10 drivers資料夾沒有檔案怎麼找回_win10 drivers資料夾不顯示處理方法Win10
- QTP中對映驅動器和複製資料夾的指令碼QT指令碼
- FastCopy包含和排除資料夾處理AST
- 讀取資料夾檔案
- Python求取資料夾內的檔案數量、子資料夾內的檔案數量Python
- 表空間資料檔案故障處理
- 利用java本地複製檔案及資料夾 (轉)Java
- 將檔案轉移到一個資料夾內batBAT
- git的gitignore檔案排除資料夾和檔案Git
- Qt 選擇資料夾、建立資料夾以及建立檔案QT
- asp.net 遞迴刪除資料夾及其子資料夾和所有檔案[轉]ASP.NET遞迴
- 遞迴遍歷磁碟下的某一資料夾中所有檔案,並copy檔案生成檔案和帶資料夾的檔案遞迴
- asm管理的dg資料檔案缺失的處理方法ASM
- Excel檔案 利用MySQL/Python 實現自動處理資料的功能ExcelMySqlPython
- uploadify前臺上傳檔案,java後臺處理的例子Java
- 在Ubuntu檔案管理器中檢視隱藏檔案和資料夾Ubuntu
- win10網路卡驅動資料夾在哪裡_win10網路卡驅動安裝在哪個資料夾Win10
- 把多個資料夾中的檔案批量放到一個資料夾
- Linux統計某資料夾下檔案、資料夾的個數Linux
- FileSystemObject 物件 (轉)Object物件
- 處理檔名內含有特殊字元的檔案 (轉)字元
- 前端資料驅動的框架之下,我們不得不掌握的資料處理方法前端框架