| Take it easy~ | [VBA] FileSystem 應用 (2) - 檔案比對 這個也是網友問我的: 存檔時如何得知其他幾個資料夾裡已有相同名稱的檔案存在 (已存在檔案有可能是隱藏的屬性) ?? 可在巨集中使用 FileSystem 物件來搜尋比對, 會包含隱藏檔. 假設這五個資料夾位於 C:\My Documents。 Sub 檢查檔案() 1 檔名 = InputBox("請輸入檔名 (包含副檔名):") 2 If 檔名 = "" Then Cancel = True: Exit Sub 3 Set fs = CreateObject("Scripting.FileSystemObject") 4 Set sf = fs.GetFolder("C:\My Documents").SubFolders 5 For Each f In sf 6 For Each f1 In f.Files 7 If f1.Name = 檔名 Then 8 MsgBox 檔名 & " 已存在於 " & f.Name & " 資料夾!" 9 a = 1: Exit For 10 End If 11 Next 12 Next 13 If a = 1 Then Cancel = True End Sub 〔說明〕 1 設定變數 "檔名" = 文字方塊的傳回值 2 若文字方塊傳回空字串則結束程式 3 設物件變數 fs = FileSystemObject (磁蹀檔案系統) 4 設物件變數 sf = C:\My Documents 底下的所有子資料夾 5 對子資料夾集合 sf 中的每個資料夾做迴圈 6 對每個資料夾中的每個檔案做迴圈 7 若檔案名稱 = 文字方塊所輸入的檔名, 則 : 8 顯示訊息方塊告知檔案已存在於某個資料夾 9 設定變數 a = 1 並跳出迴圈 13 若 a = 1 則設變數 Cancel 為 True , 可做其他判斷之用 PS. 利用 FileSystem 並不受檔案隱藏屬性影響. 但若仍想 得知該檔案是否為隱藏檔, 可使用下列程式碼 : If f1.Attributes And 2 Then MsgBox "該檔案為隱藏檔!" "2" 代表 [隱藏] 屬性的常數值, 原保留字為 "Hidden" . |
| 回覆 |
| |
類似的主題 | ||||
| 主題 | 主題作者 | 討論版 | 回覆 | 最後發表 |
| /dev/hdb1 contain a filesystem with errors..要怎麼辦 | 冷月寒羽 | -- FreeBSD & Linux 討 論 版 | 2 | 2009-03-02 07:16 PM |
| [VBA]月曆控制項亂碼問題 | leonchou | -- OFFICE 相 關 軟 體 討 論 版 | 1 | 2003-04-27 03:50 PM |
| [VBA] 比對資料及設定格式 | leonchou | -- OFFICE 相 關 軟 體 討 論 版 | 1 | 2001-09-09 12:02 AM |
| [VBA] 巨集簡介 | leonchou | -- OFFICE 相 關 軟 體 討 論 版 | 0 | 2001-08-26 05:40 PM |
| [VBA] 自動巨集與活頁薄事件 | leonchou | -- OFFICE 相 關 軟 體 討 論 版 | 1 | 2001-08-22 08:32 PM |
| XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。