Hàm DIR

Lưu ý: Chúng tôi muốn cung cấp cho bạn nội dung trợ giúp mới nhất ở chính ngôn ngữ của bạn, nhanh nhất có thể. Trang này được dịch tự động nên có thể chứa các lỗi về ngữ pháp hoặc nội dung không chính xác. Mục đích của chúng tôi là khiến nội dung này trở nên hữu ích với bạn. Vui lòng cho chúng tôi biết ở cuối trang này rằng thông tin có hữu ích với bạn không? Dưới đây là bài viết bằng Tiếng Anh để bạn tham khảo dễ hơn.

Lưu ý: Hàm, phương pháp, đối tượng hoặc thuộc tính được mô tả trong chủ đề này bị vô hiệu hóa nếu dịch vụ biểu thức Microsoft Jet đang chạy ở chế độ hộp cát, ngăn không cho đánh giá biểu thức không an toàn tiềm ẩn. Để biết thêm thông tin về chế độ hộp cát, tìm kiếm "chế độ hộp cát" trong trợ giúp.

Trả về một chuỗi đại diện cho tên của tệp, thư mục hoặc thư mục phù hợp với một mẫu hình đã xác định hoặc thuộc tính tệp hoặc nhãn âm lượng của một ổ đĩa.

Cú pháp

DIR [(tên đường dẫn [thuộc tính] )]

Cú pháp hàm Dir có các đối số:

Tham đối

Mô tả

tên đường dẫn

Tùy chọn. Chuỗi biểu thức xác định tên tệp — bao gồm các thư mục hoặc thư mục, và ổ đĩa. Một chuỗi có độ dài bằng không ("") được trả về nếu tên đường dẫn không tìm thấy.

thuộc tính

Tùy chọn. Hằng số hoặc biểu thức số, có tổng xác định thuộc tính tệp. Nếu bỏ qua, trả về các tệp khớp với tên đường dẫn nhưng có thuộc tính không có.


Thiết đặt

Các thiết đặt thuộc tínhtham đối là:

Hằng số

Giá trị

Mô tả

vbNormal

0

(Mặc định) Xác định các tệp với thuộc tính không có.

vbReadOnly

1

Xác định các tệp chỉ đọc ngoài tệp với thuộc tính không có.

vbHidden

2

Xác định các tệp ẩn ngoài tệp với thuộc tính không có.

VbSystem

4

Xác định hệ thống tệp ngoài tệp với thuộc tính không có. Không sẵn dùng trên máy Macintosh.

vbVolume

8

Xác định số lượng lớn nhãn; Nếu bất kỳ khác do được xác định, vbVolume được bỏ qua. Không sẵn dùng trên máy Macintosh.

vbDirectory

16

Xác định các thư mục hoặc thư mục ngoài tệp với thuộc tính không có.

vbAlias

64

Tệp được xác định tên là bí danh. Chỉ sẵn dùng trên máy Macintosh.


Lưu ý: Các hằng số được xác định bởi Visual Basic for Applications (VBA) và có thể dùng bất kỳ chỗ nào trong mã của bạn thay cho các giá trị thực tế.

Chú thích

Trong Microsoft Windows, Dir hỗ trợ sử dụng nhiều ký tự (*) và các ký tự duy nhất (?) ký tự đại diện để xác định nhiều tệp. Trên máy Macintosh, các ký tự được coi là ký tự trong tên tệp và không thể dùng làm ký tự đại diện để xác định nhiều tệp.

Vì Macintosh không hỗ trợ các ký tự đại diện, sử dụng loại tệp để xác định nhóm tệp. Bạn có thể dùng hàm MacID để xác định loại tệp thay vì dùng tên tệp. Ví dụ, câu lệnh sau đây trả về tên của tệp văn bản đầu tiên trong thư mục hiện tại:

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

Để lặp đi lặp lại qua tất cả các tệp trong thư mục, hãy xác định một chuỗi trống:

Dir("")

Nếu bạn sử dụng hàm MacID với Dir trong Windows, lỗi xảy ra.

Bất kỳ thuộc tính giá trị lớn hơn 256 được coi là một giá trị MacID .

Bạn phải xác định tên đường dẫn lần đầu tiên bạn gọi hàm Dir hoặc xuất hiện lỗi. Nếu bạn cũng chỉ định thuộc tính tệp, tên đường dẫn phải được đưa vào.

DIR trả về tên tệp đầu tiên khớp với tên đường dẫn. Để nhận được bất kỳ tên tệp bổ sung nào khớp với tên đường dẫn, gọi Dir lại với đối số không. Khi không có nhiều tên tệp phù hợp với Dir trả về một chuỗi có độ dài bằng không (""). Sau khi trả về một chuỗi có độ dài bằng không, bạn phải xác định tên đường dẫn trong các cuộc gọi hoặc xuất hiện lỗi. Bạn có thể thay đổi thành một mới tên đường dẫn mà không cần truy xuất tất cả các tên tệp khớp với hiện tại tên đường dẫn. Tuy nhiên, bạn không thể gọi vào Dir hàm đệ quy. Gọi Dir với thuộc tính vbDirectory mà không liên tục trả về thư mục con.

Mẹo     Vì tên tệp được truy xuất không có trật tự cụ thể, bạn có thể muốn lưu trữ tệp trả về tên trong một mảng, và sau đó sắp xếp mảng.

Ví dụ

Lưu ý: Các ví dụ sau thể hiện cách sử dụng hàm này trong mô-đun Visual Basic for Applications (VBA). Để biết thêm thông tin về cách làm việc với VBA, chọn Tham khảo dành cho Nhà phát triển trong danh sách thả xuống cạnh Tìm kiếm, rồi nhập một hoặc nhiều từ vào hộp tìm kiếm.

Ví dụ này dùng hàm Dir để kiểm tra nếu tệp và thư mục nhất định tồn tại. Trên máy Macintosh, "HD:" là tên ổ đĩa mặc định và các phần của tên đường dẫn được phân tách bằng dấu hai chấm thay vì dấu chéo ngược. Ngoài ra, các ký tự đại diện Windows được coi là ký tự hợp lệ tên tệp trên máy Macintosh. Tuy nhiên, bạn có thể dùng hàm MacID để xác định các tệp nhóm.

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
Phát triển kỹ năng Office của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×