Dir 函數

傳回 字串 表示檔案、 目錄或資料夾的名稱與指定模式、檔案屬性或是磁碟機的磁碟區標籤相符。

語法

Dir [ (pathname, [ attributes ] ) ]

Dir 函數語法具有這些部分:

部分 描述
pathname 選用。 字串運算式 會指定檔案名稱;可能包含目錄或資料夾及磁碟機。 若找不到路徑名稱,系統會傳回零長度字串 ("") 。
屬性 選用。 常數數值運算式,其總和會指定檔案的屬性。 如果省略,系統會傳回符合路徑名稱的檔案,但不具有任何屬性。

設定

屬性自設定如下:

常數 描述
vbNormal 0 (預設) 不含任何屬性指定的檔案。
vbReadOnly 1 除了不含屬性的檔案,指定唯讀檔案。
vbHidden 2 除了不含屬性的檔案,指定隱藏檔案。
vbSystem 4 除了不含屬性的檔案,指定系統檔案。 在 Macintosh 上不適用。
vbVolume 8 指定磁碟區標籤;如果未指定任何屬性,則系統會忽略 vbVolume。 在 Macintosh 上不適用。
vbDirectory 16 除了不含屬性的檔案,指定目錄或資料夾。
vbAlias 64 指定的檔案名稱為別名。 僅適用 Macintosh。

注意事項

這些常數是由 Visual Basic for Applications 指定,因此可以在您的程式碼中的任何位置取代實際值。

註解

在 Microsoft Windows 和 macOS 中, Dir 支援使用多個字元 (*) 和單一字元 () 萬用字元來指定多個檔案。

由於 Macintosh 不支援萬用字元,請使用檔案類型辨識檔案類型。 您可以使用 MacID 函數指定檔案類型,而非使用檔案名稱。 例如,下列陳述式會傳回目前資料夾中第一個 TEXT 檔案的名稱:

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

若要逐一查看資料夾中的所有檔案,請指定空字串:

Dir()

如果您在 Microsoft Windows 中使用 MacID 函數搭配 Dir,則會發生錯誤。

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

您必須指定第一次呼叫 Dir 函式或出現錯誤時的路徑名稱。 如果您也可以指定檔案屬性,則必須包含路徑名稱

Dir 會傳回第一個與路徑名稱相符的檔案名稱。 若要取得任何與路徑名稱相符的其他檔案名稱,請再次呼叫不含引數的 Dir。 如果沒有其他檔案名稱相符,Dir會傳回零長度字串 ("")。 傳回零長度字串後,您必須在後續呼叫中指定路徑名稱,否則會發生錯誤。

您不需擷取所有符合目前路徑名稱的檔案名稱,即可變更至新的路徑名稱。 不過,您不能循環呼叫 Dir 函數。 呼叫具 vbDirectory 屬性的 Dir不會持續傳回子目錄。

提示

因為檔案名在 Windows 上會以不區分大小寫順序和在 macOS 上以區分大小寫順序來檢索,所以您可能會想要在陣列中儲存已傳回的檔案名稱,然後排序陣列。

請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應