方便好用的FileSystemObject

從VB6.0起,VB新增了FileSystemObject物件,這個物件可以取代以往許多要用API才能做到 的事,如覆製資料夾、取得磁碟機資訊等,在作一些相關處理時可以節省不少時間。要引用這個 項目你必須以設定引用項目將 Microsoft Scripting Runtime手動加入專案,否則是沒有辦法使用的! 我來概略說明一下使用的方法和功能
   Dim fso as New FileSystemObject
   FileSystemObject本身就已經有許多的方法可以使用了
   包括資料夾複製、檔案複製
       fso.CopyFolder "C:\ABC","C:\DEF"
       fso.FileCopy "c:\123.txt","c:\456.txt"
   建立資料夾
       fso.CreateFolder "C:\ABC"
   建立文字檔
       fso.CreateTextFile "c:\123.txt"
   刪除資料夾、檔案
       fso.DeleteFolder "C:\ABC"
       fso.DeleteFile "c:\123.txt"
   取得Windows路徑,System路徑
       fso.GetSpecialFolder(WindowsFolder)
       fso.GetSpecialFolder(SystemFolder)


   取得所有的磁碟機
     磁碟機總數(包含網路磁碟機等) - fso.Drives.Count
  
     取得所有磁碟機物件
     Dim Drivetemp As Drive
     ReDim DriveObject(1 To fso.Drives.Count)
     Dim i As Integer

     For Each Drivetemp In fso.Drives
         i = i + 1
         Set DriveObject(i) = Drivetemp
     Next
     
     經由該物件的屬性可以得知許多事,列舉常用的幾個
     DriveObject的使用說明
       查詢該磁碟機的可用空間
          .AvailableSpace    .FreeSpace
          這兩個屬性都可以查出剩餘空間,我還看不出有什麼不同
       查詢該磁碟機的總容量
          .TotalSize

       磁碟機的代碼
          .DriveLetter       .RootPath
          DriveLetter只有代碼,RootPath則可查出根目錄的路徑
       磁碟機的類別
          .DriveType
          傳回值分別代表
          Unknown   - "無從判斷"
          Removable - "抽取式磁碟"
          Fixed     - "硬碟"
          Remote    - "遠端(網路)儲存裝置"
          CDRom     - "光碟機"
          RamDisk   - "RAM Disk"
       
       

   取得資料夾的資料
      Dim fs As New FileSystemObject  ' 建立 FileSystemObject
      Dim fd As Folder    ' 宣告 Folder 物件
      Dim i As Integer
    
      Set fd = fs.GetFolder("c:\")
      取得子資料夾的總數 - fd.SubFolders.Count

      ReDim sfd(1 To fd.SubFolders.Count) As Folder
      For Each fd In fd.SubFolders
          i = i + 1
          Set sfd(i) = Folder
          List1.AddItem sfd(i).Name        
      Next
      
      這個方法只能取得一層子資料夾,如果要取得所有資料夾則
      須利用遞迴重覆執行

      Folder的屬性比較特殊的是ShortPath可以直接取得該
      Folder的短檔名及DateCreated、DateLastAccessed、
      DateLastModified可取得建立時間及變更時間等
            
      至於File物件只要改用GetFile方法,其餘沒有什麼特別不同的方法      
大概就是這樣,自己多試試,可以試出很多方便的小技巧喔!