方便好用的FileSystemObject
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方法,其餘沒有什麼特別不同的方法大概就是這樣,自己多試試,可以試出很多方便的小技巧喔! |