leonchou
2001-09-07, 11:33 PM
這個也是網友問我的:
存檔時如何得知其他幾個資料夾裡已有相同名稱的檔案存在
(已存在檔案有可能是隱藏的屬性) ??
可在巨集中使用 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" .
存檔時如何得知其他幾個資料夾裡已有相同名稱的檔案存在
(已存在檔案有可能是隱藏的屬性) ??
可在巨集中使用 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" .