Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

หมายเหตุ: ฟังก์ชัน วิธีการ วัตถุ หรือคุณสมบัติที่อธิบายไว้ในหัวข้อนี้จะถูกปิดใช้งานถ้า Microsoft Jet Expression Service ทํางานในโหมด Sandbox ซึ่งจะป้องกันการประเมินนิพจน์ที่อาจไม่ปลอดภัย สําหรับข้อมูลเพิ่มเติมเกี่ยวกับโหมด Sandbox ให้ค้นหา "โหมด Sandbox" ในวิธีใช้

ส่งกลับ สตริง ที่แสดงชื่อของไฟล์ ไดเรกทอรี หรือโฟลเดอร์ที่ตรงกับรูปแบบหรือแอตทริบิวต์ของไฟล์ที่ระบุ หรือชื่อไดรฟ์ข้อมูลของไดรฟ์

ไวยากรณ์

Dir[(pathname [, attributes] )]

ไวยากรณ์ของฟังก์ชัน Dir มีอาร์กิวเมนต์ดังนี้

อาร์กิวเมนต์

คำอธิบาย

pathname

ไม่จำเป็น นิพจน์สตริงที่ระบุชื่อไฟล์ ซึ่งอาจรวมถึงไดเรกทอรีหรือโฟลเดอร์ และไดรฟ์ สตริงที่มีความยาวเป็นศูนย์ ("") จะถูกส่งกลับถ้าไม่พบ pathname

แอ ตทริ บิวต์

ไม่จำเป็น ค่าคงที่หรือ นิพจน์ตัวเลข ที่มี sum ระบุแอตทริบิวต์ของแฟ้ม ถ้าไม่ใส่ค่าอะไรไว้ จะส่งกลับไฟล์ที่ตรงกับ ชื่อเส้นทาง แต่ไม่มีแอตทริบิวต์

การตั้งค่า

แอตทริบิวต์ อาร์กิวเมนต์ การตั้งค่าได้แก่:

ค่าคงที่

ค่า

คำอธิบาย

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("")

ถ้าคุณใช้ฟังก์ชัน MacID กับ Dir ใน Windows จะเกิดข้อผิดพลาดขึ้น

แอตทริบิวต์ใดๆ ที่มี ค่ามากกว่า 256 จะถือว่าเป็นค่า MacID

คุณต้องระบุชื่อ เส้นทาง ในครั้งแรกที่คุณเรียกใช้ฟังก์ชัน Dir หรือมีข้อผิดพลาดเกิดขึ้น ถ้าคุณระบุแอตทริบิวต์ของแฟ้มด้วย ชื่อ เส้นทาง จะต้องรวมอยู่ด้วย

Dir ส่งกลับชื่อไฟล์แรกที่ตรงกับชื่อเส้นทาง เมื่อต้องการรับชื่อไฟล์เพิ่มเติมที่ตรงกับ ชื่อเส้นทาง ให้เรียกใช้ Dir อีกครั้งโดยไม่มีอาร์กิวเมนต์ เมื่อไม่มีชื่อไฟล์ตรงกัน อีกต่อไป Dir จะส่งกลับสตริงที่มีความยาวเป็นศูนย์ ("") เมื่อสตริงที่มีความยาวเป็นศูนย์ถูกส่งกลับ คุณต้องระบุชื่อ เส้นทาง ในการเรียกที่ตามมาหรือข้อผิดพลาดเกิดขึ้น คุณสามารถเปลี่ยนเป็น ชื่อเส้นทาง ใหม่ได้โดยไม่ต้องเรียกชื่อไฟล์ทั้งหมดที่ตรงกับ ชื่อเส้นทางปัจจุบัน อย่างไรก็ตาม คุณไม่สามารถเรียกใช้ฟังก์ชัน Dir ซ้ําได้ การเรียก Dir ด้วยแอตทริบิวต์ vbDirectory ไม่ได้ส่งกลับไดเรกทอรีย่อยอย่างต่อเนื่อง

เคล็ดลับ     เนื่องจากชื่อไฟล์จะถูกเรียกใช้โดยไม่มีลําดับที่เฉพาะเจาะจง คุณอาจต้องการเก็บชื่อไฟล์ที่ส่งกลับใน อาร์เรย์ แล้วเรียงลําดับอาร์เรย์

ตัวอย่าง

หมายเหตุ: ตัวอย่างต่อไปนี้จะสาธิตการใช้ฟังก์ชันนี้ในโมดูล 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

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย