2013-02-14 35 views
74

Tôi muốn biết liệu có thể lấy tất cả tên của tệp văn bản trong một thư mục nhất định hay không.Lấy tất cả tên tệp từ một thư mục bằng C#

Ví dụ, tôi có một thư mục có tên Bản đồ và tôi muốn lấy tên của tất cả các tệp văn bản trong thư mục đó và thêm nó vào danh sách các chuỗi.

Có thể, và nếu có, làm thế nào tôi có thể đạt được điều này?

+8

Thực tế rằng bạn là một người mới bắt đầu là không có liên quan, thực tế là bạn không đã cố gắng bất cứ điều gì là rất xấu. Một tìm kiếm đơn giản trên công cụ tìm kiếm yêu thích của bạn cho "thư mục C# nhận tất cả các tệp" sẽ cung cấp cho bạn hàng nghìn liên kết. Cho một người đàn ông một con cá và bạn cho nó ăn một ngày. Dạy anh ta cách câu cá và bạn nuôi anh ta suốt đời. -Lao Tzu - Câu tục ngữ Trung Quốc cổ đại – Steve

+32

Điều này thực sự làm phiền tôi. Bạn không cho anh ta một con cá, hoặc dạy anh ta cách câu cá, bạn chỉ đang dạy anh ấy. Nếu bạn thực sự muốn dạy anh ta cách câu cá, bạn có thể có. –

+0

4 năm sau, bạn là một đứa trẻ chuyên nghiệp?hoặc đói khát hy vọng cho một bản tin cá khác? cần câu của tôi là [site: stackoverflow.com] (https: // site: stackoverflow.com) –

Trả lời

60
using System.IO; //add this namespace also 

string[] filePaths = Directory.GetFiles(@"c:\Maps\", "*.txt", 
             SearchOption.TopDirectoryOnly); 
-4

Tôi khuyên bạn nên google 'Đọc các đối tượng trong thư mục'. Bạn có thể cần tạo một trình đọc và danh sách và cho phép người đọc đọc tất cả các tên đối tượng trong thư mục và thêm chúng vào danh sách theo các vòng lặp.

+6

Hiệu quả hơn nhiều khi sử dụng phương thức GetFiles sẵn có trong lớp Thư mục. –

157
DirectoryInfo d = new DirectoryInfo(@"D:\Test");//Assuming Test is your Folder 
FileInfo[] Files = d.GetFiles("*.txt"); //Getting Text files 
string str = ""; 
foreach(FileInfo file in Files) 
{ 
    str = str + ", " + file.Name; 
} 

Hy vọng điều này sẽ giúp ...

+21

Sử dụng System.IO; – Jeff

+7

FileInfo có rất nhiều chi phí, sẽ tốt hơn nếu sử dụng Path.GetFileName (filePath) –

32

Nó phụ thuộc vào những gì bạn muốn làm.

ref: http://www.csharp-examples.net/get-files-from-directory/

này sẽ mang lại TẤT CẢ các file trong thư mục chỉ định

string[] fileArray = Directory.GetFiles(@"c:\Dir\"); 

này sẽ mang lại TẤT CẢ các file trong thư mục chỉ định có phần mở rộng nhất định

string[] fileArray = Directory.GetFiles(@"c:\Dir\", "*.jpg"); 

Thao tác này sẽ mang lại TẤT CẢ các tệp trong thư mục được chỉ định AS WELL AS tất cả các thư mục con với một số tiện ích mở rộng nhất định

string[] fileArray = Directory.GetFiles(@"c:\Dir\", "*.jpg", SearchOption.AllDirectories); 

Hope this helps