附註: 如果 MicrosoftJet 運算式服務是在沙箱模式中執行,則本主題中所述的函數、方法、物件或屬性會停用,這可防止評估可能不安全的運算式。 有關沙箱模式的詳細資訊,在 「協助」中搜尋「沙箱模式」。

會以 字串 表示符合指定模式或檔案屬性的檔案、目錄或資料夾名稱,或磁碟機的標籤。

語法

Dir[ (pathname[, attributes] ) ]

Dir 函數語法具有這些引數:

引數

描述

路徑

選用。 指定檔案名的字串運算式可能包含目錄或資料夾,以及磁碟機。 如果找不到 pathname,會 ("") " 字元

屬性

選用。 常數或 數值運算式,其加總可指定檔案屬性。 如果省略,會返回符合 pathname 但 沒有任何屬性的檔案。


設定

設定 引數 屬性為:

常數

描述

vbNormal

0

(預設) 指定沒有屬性的檔案。

vbReadOnly

1

除了沒有屬性的檔案之外,指定唯讀檔案。

vbHidden

2

除了沒有屬性的檔案之外,指定隱藏的檔案。

VbSystem

4

除了沒有屬性的檔案之外,指定系統檔案。 Macintosh 上沒有提供。

vbVolume

8

指定標籤;如果已指定任何其他屬性 ,vbVolume 會 被忽略。 Macintosh 上沒有提供。

vbDirectory

16

除了沒有屬性的檔案之外,指定目錄或資料夾。

vbAlias

64

指定的檔案名是一個別名。 僅適用于 Macintosh。


附註:  這些常數是由 Visual Basic for Applications (VBA) 指定,並可用於程式碼中的任何位置,以做為實際值。

註解

在 Microsoft Windows 中 ,Dir 支援使用多個字元 (*) 和單一字元 (?) 來指定多個檔案。 在 Macintosh 上,這些字元會被視為有效的檔案名字元,無法做為萬用字元來指定多個檔案。

由於 Macintosh 不支援萬用字元,因此請使用檔案類型來識別檔案群組。 您可以使用 MacID 函數來指定檔案類型,而不使用檔案名。 例如,下列語句會返回目前資料夾中第一個 TEXT 檔案的名稱:

Dir("SomePath", MacID("TEXT"))

若要在資料夾中的所有檔案上,請指定空字串:

Dir("")

如果您在 Windows 中 將 MacID 函數與 Dir 一起使用,發生錯誤。

任何 大於 256 的屬性值都視為 MacID 值。

第一 次呼叫 Dir 函數時,您必須指定 pathname, 否則會發生錯誤。 如果您也指定檔案屬性,則必須包含 pathname。

Dir 會返回符合 pathname 的第一 個檔案名。 若要取得符合 pathname的其他檔案名,請再次撥打 Dir, 但不要輸入引數。 當檔案名不再相符時 ,Dir 會 (") 。 一旦返回零長度字串後,您必須在後續通話中指定 路徑 名稱,否則會發生錯誤。 您可以變更為新的 路徑名稱 ,而不需要所有符合目前路徑名稱 的檔案名。 不過,您無法以遞迴方式呼叫 Dir 函數。 使用vbDirectory屬性呼叫Dir不會持續返回子目錄。

提示     由於檔案名不會以特定順序來取取,因此您可能會想要將所退回的檔案名儲存在 陣列中,然後排序陣列。

範例

附註: 下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。

此範例使用 Dir 函數 檢查特定檔案和目錄是否存在。 在 Macintosh 上,"HD:"是預設的磁碟機名稱,路徑名稱的部分會以冒號分隔,而不是反反杠。 此外,Windows 萬用字元在 Macintosh 上會被視為有效的檔案名字元。 不過,您可以使用 MacID 函數來指定檔案群組。

Dim MyFile, MyPath, MyName
' Returns "WIN.INI" (on Microsoft Windows) if it exists.
MyFile = Dir("C:\WINDOWS\WIN.INI")
' Returns filename with specified extension. If more than one *.ini
' file exists, the first file found is returned.
MyFile = Dir("C:\WINDOWS\*.INI")
' Call Dir again without arguments to return the next *.INI file in the
' same directory.
MyFile = Dir
' Return first *.TXT file with a set hidden attribute.
MyFile = Dir("*.TXT", vbHidden)
' Display the names in C:\ that represent directories.
MyPath = "c:\" ' Set the path.
MyName = Dir(MyPath, vbDirectory) ' Retrieve the first entry.
Do While MyName <> "" ' Start the loop.
' Ignore the current directory and the encompassing directory.
If MyName <> "." And MyName <> ".." Then
' Use bitwise comparison to make sure MyName is a directory.
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' Display entry only if it
End If ' it represents a directory.
End If
MyName = Dir ' Get next entry.
Loop

需要更多協助?

擴展您的技能
探索訓練

這項資訊有幫助嗎?

您對翻譯品質的滿意度為何?
以下何者是您會在意的事項?

感謝您的意見反應!

×