2009-12-13 40 views

Trả lời

36

Hãy thử như sau

bool isDir = Directory.Exists(somePath) 

Lưu ý rằng điều này không thực sự cho bạn biết nếu một thư mục tồn tại mặc dù. Nó cho bạn biết rằng một thư mục đã tồn tại ở một thời điểm nào đó trong quá khứ gần đây mà quá trình hiện tại có một số biện pháp truy cập. Vào thời điểm bạn cố gắng truy cập vào thư mục, nó có thể đã bị xóa hoặc thay đổi theo cách nào đó để ngăn chặn quá trình truy cập của bạn.

Tóm lại, hoàn toàn có thể cho dòng thứ hai thất bại vì thư mục không tồn tại.

if (Directory.Exists(somePath)) { 
    var files = Directory.GetFiles(somePath); 
} 

Tôi đã viết một entry trên blog về chủ đề này thời gian gần đây là đáng đọc nếu bạn đang sử dụng các phương pháp như Directory.Exists để đưa ra quyết định

6

Nếu đường dẫn tồn tại, bạn có thể sử dụng: Directory.Exists để cho biết đó là tệp hay thư mục.

Nếu đường dẫn không tồn tại, thì không có cách nào để biết đường dẫn là tệp hay thư mục vì nó có thể là đường dẫn hoặc thư mục.

29

Bạn cũng có thể làm :

FileAttributes attr = File.GetAttributes(@"c:\Path\To\Somewhere"); 
if((attr & FileAttributes.Directory) == FileAttributes.Directory) 
{ 
    //it's a directory 
} 
+1

đây là câu trả lời thực sự! – nawfal

7

Bạn cũng có thể kiểm tra tệp sườn bởi File.GetAttributes() (tất nhiên, chỉ khi tệp/thư mục tồn tại). Loại FileAttributes có giá trị là Directory cho biết đường dẫn là thư mục.

Các vấn đề liên quan