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

Lưu ý: Hàm, phương pháp, đối tượng hoặc thuộc tính được mô tả trong chủ đề này sẽ bị vô hiệu hóa nếu Dịch vụ Biểu thức Phản lực của Microsoft đang chạy trong chế độ hộp cát, điều này ngăn không cho đánh giá các 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, hãy 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 khớp với một mẫu hình hoặc thuộc tính tệp đã xác định hoặc nhãn ổ đĩa.

Cú pháp

Dir[(pathname [, attributes] )]

pháp hàm Dir có các đối số sau đây:

Đối số

Mô tả

tên đường dẫn

Không bắt buộc. Biểu thức chuỗi chỉ định tên tệp — có thể bao gồm thư mục hoặc thư mục và ổ đĩa. Trả về chuỗi độ dài bằng 0 ("") nếu không tìm thấy tên đường dẫn.

Thuộc tính

Không bắt buộc. Hằng số hoặc biểu thức số, có tổng xác định các 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 không có thuộc tính.

Cài đặt

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

Hằng số

Giá trị

Mô tả

vbNormal

0

(Mặc định) Chỉ định tệp không có thuộc tính.

vbReadOnly

1

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

vbHidden

2

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

VbSystem

4

Chỉ định các tệp hệ thống ngoài các tệp không có thuộc tính. Không khả dụng trên Macintosh.

vbVolume

8

Xác định nhãn ổ đĩa; nếu bất kỳ thuộc tính nào khác được xác định, vbVolume sẽ bị bỏ qua. Không khả dụng trên Macintosh.

vbDirectory

16

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

vbAlias

64

Tên tệp đã xác định là một biệt danh. Chỉ sẵn dùng trên Macintosh.

Lưu ý:  Các hằng số này được xác định bởi Visual Basic for Applications (VBA) và có thể được dùng ở bất kỳ đâu 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à ký tự đại diện đơn (?) để chỉ định nhiều tệp. Trên Macintosh, các ký tự này được coi là ký tự tên tệp hợp lệ và không thể được dùng làm ký tự đại diện để chỉ định nhiều tệp.

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

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

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

Dir("")

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

Mọi giá trị thuộc tính lớn hơn 256 được coi là giá trị MacID .

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

Dir trả về tên tệp đầu tiên khớp với tên đường dẫn. Để có thêm bất kỳ tên tệp nào khớp với tên đường dẫn, hãy gọi lại Dir mà không có đối số. Khi không có tên tệp nào khớp, Dir trả về chuỗi độ dài bằng 0 (""). Sau khi trả về chuỗi độ dài bằng 0, bạn phải chỉ định tên đường dẫn trong các cuộc gọi tiếp theo hoặc xảy ra lỗi. Bạn có thể thay đổi thành tên đường dẫn mới mà không cần truy xuất tất cả tên tệp khớp với tên đường dẫn hiện tại. Tuy nhiên, bạn không thể gọi hàm Dir là đệ cấp. Tính năng Gọi Dir với thuộc tính vbDirectory 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 theo thứ tự cụ thể, bạn có thể muốn lưu trữ tên tệp được trả về trong một array, 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 sử dụng hàm Dir để kiểm tra xem một số tệp và thư mục nhất định có tồn tại không. Trên 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 gạch chéo ngược. Ngoài ra, các ký tự đại diện Windows được coi là ký tự tên tệp hợp lệ trên Macintosh. Tuy nhiên, bạn có thể sử dụng hàm MacID để chỉ định nhóm tệp.

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

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.