Dir 函數

重要:  本文係由機器翻譯而成,請參閱免責聲明。本文的英文版本請見這裡,以供參考。

附註: 如果在沙箱模式中,可避免可能不安全的運算式的評估執行的 Microsoft Jet 運算式服務,就會停用函數、 方法、 物件或在本主題中所述的屬性。如需有關沙箱模式的詳細資訊,搜尋 「 沙箱模式 」 的說明。

傳回字串,表示的檔案、 目錄或資料夾符合指定的圖樣或檔案屬性名稱或磁碟機的區標籤。

語法

Dir[(路徑名稱[屬性] ]

Dir函數語法具有下列引數︰

引數

描述

路徑

選用。字串運算式,指定檔案名稱,可能包含目錄或資料夾及磁碟機。零長度字串 ("") 會傳回如果路徑找不到。

屬性

選用。常數或數值運算式,其總和指定檔案屬性。如果省略,則會傳回符合路徑名稱,但不含任何屬性的檔案。


設定

屬性 引數設定為︰

常數

Value (值)

描述

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函數,來指定,而不是使用的檔案名稱的檔案類型。例如,下列陳述式會傳回目前資料夾中的第一個文字檔案的名稱︰

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

若要重複的資料夾中的所有檔案,指定空字串︰

Dir("")

如果您使用MacID函數和Dir Windows 中時,發生錯誤。

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

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

Dir會傳回符合路徑名稱的第一個檔案名稱。若要取得符合路徑的任何其他檔案名稱,請連絡Dir再次沒有引數。Dir時沒有更多的檔案名稱相符,傳回的零長度字串 ("")。一旦傳回的零長度字串,則必須指定路徑名稱中的後續通話,或發生錯誤。您可以變更為新的路徑,不擷取的所有檔案名稱符合目前的路徑。不過,您無法遞迴Dir函數。呼叫DirvbDirectory屬性,不會持續傳回子目錄。

秘訣    由於檔案名稱會擷取任何特定順序排列,您可能需要先儲存陣列中,傳回的檔案名稱,然後依 [陣列。

範例

附註: 下列範例示範如何在 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

附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×