ฟังก์ชัน Dir

สิ่งสำคัญ:  บทความนี้เป็นการแปลด้วยเครื่อง โปรดดู ข้อจำกัดความรับผิดชอบ โปรดดูบทความฉบับภาษาอังกฤษ ที่นี่ เพื่อใช้อ้างอิง

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

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

ไวยากรณ์

ไดเรกทอรี [(ชื่อเส้นทาง[แอตทริบิวต์] )]

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

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

คำอธิบาย

ชื่อเส้นทาง

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

แอตทริบิวต์

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


การตั้งค่า

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

ค่าคงที่

ค่า

คำอธิบาย

vbNormal

0

(ค่าเริ่มต้น) ระบุไฟล์ โดยไม่มีแอตทริบิวต์หรือไม่

vbReadOnly

1

ระบุไฟล์แบบอ่านอย่างเดียวนอกเหนือจากไฟล์ มีไม่มีแอตทริบิวต์

vbHidden

2

ระบุไฟล์ที่ซ่อนอยู่นอกเหนือจากไฟล์ มีไม่มีแอตทริบิวต์

VbSystem

4

ระบุระบบไฟล์นอกเหนือจากไฟล์ มีไม่มีแอตทริบิวต์ ไม่พร้อมใช้งานบน Macintosh

vbVolume

8

ระบุชื่อ volume ถ้าอื่นเกิดจากมีระบุvbVolumeจะถูกละเว้น ไม่พร้อมใช้งานบน Macintosh

vbDirectory

16

ระบุไดเรกทอรีหรือโฟลเดอร์นอกเหนือจากไฟล์ โดยไม่มีแอตทริบิวต์

vbAlias

64

ชื่อไฟล์ที่ระบุเป็นนามแฝง พร้อมใช้งานเฉพาะบน Macintosh


หมายเหตุ: ค่าคงต่อไปนี้จะระบุ โดย Visual Basic for Applications (VBA) และสามารถใช้ที่ใดก็ได้ในโค้ดของคุณในตำแหน่งของค่าที่แท้จริง

ข้อสังเกต

ใน Microsoft Windowsไดเรกทอรีสนับสนุนการใช้หลายอักขระ (*) และอักขระตัวแทนอักขระเดี่ยว (?) เพื่อระบุหลายไฟล์ บน Macintosh อักขระต่อไปนี้จะถือว่าเป็นอักขระชื่อไฟล์ที่ถูกต้อง และไม่สามารถใช้เป็นอักขระตัวแทนเพื่อระบุหลายไฟล์

เนื่องจาก Macintosh ไม่สนับสนุนตัวอักขระตัวแทน ใช้ชนิดไฟล์เพื่อระบุกลุ่มของไฟล์ คุณสามารถใช้ฟังก์ชันMacIDเมื่อต้องการระบุชนิดไฟล์แทนที่จะใช้ชื่อไฟล์ ตัวอย่างเช่น คำสั่งต่อไปนี้ส่งกลับชื่อของไฟล์ข้อความแรกในโฟลเดอร์ปัจจุบัน:

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

เมื่อต้องการทำซ้ำในไฟล์ทั้งหมดในโฟลเดอร์ ระบุสตริงว่าง:

Dir("")

ถ้าคุณใช้ฟังก์ชันMacIDด้วยไดเรกทอรีใน Windows ข้อผิดพลาดเกิดขึ้น

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

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

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

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

ตัวอย่าง

หมายเหตุ: ตัวอย่างที่ติดตามสาธิตการใช้ฟังก์ชันนี้ใน Visual Basic for Applications (VBA) มอดูล สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับ VBA เลือกอ้างอิงสำหรับนักพัฒนา ในรายการดรอปดาวน์ถัดจากค้นหา และใส่เงื่อนไขอย่าง น้อยหนึ่งในกล่องค้นหา

ตัวอย่างนี้ใช้ฟังก์ชันไดเรกทอรีเพื่อตรวจสอบถ้าบางไฟล์และไดเรกทอรีมีอยู่ บน 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 Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ!

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×