Tôi phải kiểm tra, nếu thư mục trên đĩa trống. Nó có nghĩa là, nó không chứa bất kỳ thư mục / tập tin. Tôi biết, đó là một phương pháp đơn giản. Chúng tôi nhận được mảng của FileSystemInfo và kiểm tra xem số phần tử có bằng không. Một cái gì đó như thế:
public static bool CheckFolderEmpty(string path)
{
if (string.IsNullOrEmpty(path))
{
throw new ArgumentNullException("path");
}
var folder = new DirectoryInfo(path);
if (folder.Exists)
{
return folder.GetFileSystemInfos().Length == 0;
}
throw new DirectoryNotFoundException();
}
Cách tiếp cận này có vẻ ổn. NHƯNG!! Đó là rất, rất xấu từ góc độ hiệu suất. GetFileSystemInfos () là một phương pháp rất khó. Trên thực tế, nó liệt kê tất cả các đối tượng hệ thống tập tin của thư mục, nhận tất cả các thuộc tính của chúng, tạo các đối tượng, điền vào mảng đã nhập, v.v. Và tất cả điều này chỉ để kiểm tra Độ dài. Điều đó thật ngu ngốc phải không?
Tôi vừa lập hồ sơ mã như vậy và xác định rằng ~ 250 cuộc gọi của phương thức đó được thực hiện trong ~ 500ms. Điều này rất chậm và tôi tin rằng có thể thực hiện nhanh hơn nhiều.
Bất kỳ đề xuất?