FSO - FileSystemObject 或 Scripting.FileSystemObject 的縮寫,為 IIS 內建群組件,用於操作磁碟、檔案夾或文字檔。FSO 的對象、方法和屬性非常的多,這裡用樣本的方式列出常用的,如果您要查看更詳盡的資訊,請點擊這裡下載 FileSystemObject 參考,注意:《VBScript 語言參考》或《JScript 語言參考》中的:《FileSystemObject 使用者指南》和《Scripting 執行階段程式庫參考》便是微軟給出的 FileSystemObject 完整參考。 FSO 不能操作二進位檔案,要操作二進位檔案,請使用:ADODB.Stream。 建立檔案 dim fso, f set fso = server.CreateObject("Scripting.FileSystemObject") set f = fso.CreateTextFile("C:\test.txt", true) '第二個參數表示目標檔案存在時是否覆蓋 f.Write("寫入內容") f.WriteLine("寫入內容並換行") f.WriteBlankLines(3) '寫入三個空白行(相當於在文字編輯器中按三次斷行符號) f.Close() set f = nothing set fso = nothing 開啟並讀檔案 dim fso, f set fso = server.CreateObject("Scripting.FileSystemObject") set f = fso.OpenTextFile("C:\test.txt", 1, false) '第二個參數 1 表示唯讀開啟,第三個參數表示目標檔案不存在時是否建立 f.Skip(3) '將當前位置向後移三個字元 f.SkipLine() '將當前位置移動到下一行的第一個字元,注意:無參數 response.Write f.Read(3) '從當前位置向後讀取三個字元,並將當前位置向後移三個字元 response.Write f.ReadLine() '從當前位置向後讀取直到遇到分行符號(不讀取分行符號),並將當前位置移動到下一行的第一個字元,注意:無參數 response.Write f.ReadAll() '從當前位置向後讀取,直到檔案結束,並將當前位置移動到檔案的最後 if f.atEndOfLine then response.Write("一行的結尾!") end if if f.atEndOfStream then response.Write("檔案的結尾!") end if f.Close() set f = nothing set fso = nothing 開啟並寫檔案 dim fso, f set fso = server.CreateObject("Scripting.FileSystemObject") set f = fso.OpenTextFile("C:\test.txt", 2, false) '第二個參數 2 表示重寫,如果是 8 表示追加 f.Write("寫入內容") f.WriteLine("寫入內容並換行") f.WriteBlankLines(3) '寫入三個空白行(相當於在文字編輯器中按三次斷行符號) f.Close() set f = nothing set fso = nothing 判斷檔案是否存在 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") if fso.FileExists("C:\test.txt") then response.Write("目標檔案存在") else response.Write("目標檔案不存在") end if set fso = nothing 移動檔案 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") call fso.MoveFile("C:\test.txt", "D:\test111.txt") '兩個參數的檔案名稱部分可以不同 set fso = nothing 複製檔案 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") call fso.CopyFile("C:\test.txt", "D:\test111.txt") '兩個參數的檔案名稱部分可以不同 set fso = nothing 刪除檔案 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") fso.DeleteFile("C:\test.txt") set fso = nothing 建立檔案夾 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") fso.CreateFolder("C:\test") '目標檔案夾的父資料夾必須存在 set fso = nothing 判斷檔案夾是否存在 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") if fso.FolderExists("C:\Windows") then response.Write("目標檔案夾存在") else response.Write("目標檔案夾不存在") end if set fso = nothing 刪除檔案夾 dim fso set fso = server.CreateObject("Scripting.FileSystemObject") fso.DeleteFolder("C:\test") '檔案夾不必為空白 set fso = nothing CreateTextFile (filename,overwrite,unicode) 用指定的檔案名稱在檔案夾內建立一個新的文字檔,並且返回一個相應的TextStream對象。如果可選的overwrite參數設定為True,將覆蓋任何已有的同名檔案。預設的overwrite參數是False。如果可選的unicode參數設定為True,檔案的內容將儲存為unicode文本。預設的unicode是False 在檔案夾之間可以使用當前檔案夾的ParentFolder屬性,返回到父目錄。當到達一個檔案夾時,如果IsRootFolder屬性是True,就停下來。離開磁碟機的根目錄,沿分類樹向下,可遍曆或訪問在Folders集合(由當前檔案夾的SubFolders屬性返回)內的指定檔案夾。 下列程式遍曆了磁碟機C根目錄內的所有檔案夾,並顯示各個檔案夾的有關資訊。 VBScript程式如下: 'In VBScript: ' Create a FileSystemObject instance Set objFSO = Server.CreateObject("Scripting.FileSystemObject") ' Get a reference to drive C Set objDriveC = objFSO.GetDrive("C:") ' Get a reference to the root folder Set objRoot = objDriveC.RootFolder ' Get a reference to the SubFolders collection Set objFolders = objRoot.SubFolders ' Get a reference to the first folder in the SubFolders collection For Each objFolder In objFolders Set objFolder1 = objFolders.Item((objFolder.Name)) Exit For Next ' Iterate through all the files in this folder For Each objFile in objFolder1.Files Response.Write "Name: " & objFile.Name & " " Response.Write "ShortName: " & objFile.ShortName & " " Response.Write "Size: " & objFile.Size & " bytes " Response.Write "Type: " & objFile.Type & "<BR>" Response.Write "Path: " & objFile.Path & " " Response.Write "ShortPath: " & objFile.ShortPath & "<BR>" Response.Write "Created: " & objFile.DateCreated & " " Response.Write "LastModified: " & objFile.DateLastModified & "<P>" Next JScript程式如下: //In JScript: // Create a FileSystemObject instance var objFSO = Server.CreateObject('Scripting.FileSystemObject'); // Get a reference to drive C var objDriveC = objFSO.GetDrive('C:'); // Get a reference to the root folder var objRoot = objDriveC.RootFolder; // Get a reference to the first folder in the SubFolders collection var colAllFolders = new Enumerator(objRoot.SubFolders); var objFolder1 = colAllFolders.item(); // Get a reference to the Files collection for this folder var colFiles = new Enumerator(objFolder1.Files); // Iterate through all the files in this collection for (; !colFiles.atEnd(); colFiles.moveNext()) { objFile = colFiles.item() Response.Write('Name: ' + objFile.Name + ' '); Response.Write('ShortName: ' + objFile.ShortName + ' '); Response.Write('Size: ' + objFile.Size + ' bytes '); Response.Write('Type: ' + objFile.Type + '<BR>'); Response.Write('Path: ' + objFile.Path + ' '); Response.Write('ShortPath: ' + objFile.ShortPath + '<BR>'); Response.Write('Created: ' + objFile.DateCreated + ' '); Response.Write('Accessed: ' + objFile.DateLastAccessed + ' '); Response.Write('Modified: ' + objFile.DateLastModified + '<P>'); } |