2011-09-02 1 views
8

Tôi có đoạn mã sau:Có thể chỉ định đường dẫn thư mục bằng ký tự đại diện không?

foreach (string file in Directory.GetFiles(sourcePath)) 
{ 
    // whatever 
} 

Đó được tập tin từ một thư mục cụ thể. Có thể kết hợp các thư mục bằng cách sử dụng ký tự đại diện không? Ví dụ:

c:\test\di* 

sẽ phù hợp với tất cả các file trong thư mục:

c:\test\dictionary\ 
c:\test\directory\ 
c:\test\dig\ 

tôi thấy rằng bạn có thể vượt qua một bộ lọc tập tin vào phương pháp GetFiles, nhưng áp dụng cho file duy nhất, không tên thư mục.

Trả lời

10

Bạn có một overload cho điều này cho phép bạn chỉ định một mô hình tìm kiếm hoặc nếu bạn cần phải xác định tùy chọn tìm kiếm có another overload:

foreach (string directory in Directory.GetDirectories(sourcePath, "di*")) 
{ 
    // whatever 
} 
+0

Tôi tin rằng đó là một bộ lọc tập tin và không cho phép sử dụng các ký tự đại diện khi chỉ định thư mục. Chẳng phải ví dụ của bạn sẽ chỉ nhận được các tệp bắt đầu bằng 'di' trong một thư mục cụ thể. –

+2

@Abe Miessler, không, nó hoạt động với tên thư mục hoàn toàn tốt. Hãy thử ví dụ tôi đã đăng: 'Directory.GetDirectories (@" c: \ test "," di * "))' sẽ khớp với tất cả các thư mục bạn đã hiển thị trong câu hỏi của bạn. –

+0

oh! Ok, hãy để tôi kiểm tra. –