मुझे जांचना होगा, अगर डिस्क पर निर्देशिका खाली है। इसका मतलब है, कि इसमें कोई फोल्डर / फाइल नहीं है। मुझे पता है, कि एक सरल विधि है। हम FileSystemInfo की सरणी प्राप्त करते हैं और जांचते हैं कि तत्वों की गिनती शून्य के बराबर है या नहीं। ऐसा कुछ:
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();
}
यह दृष्टिकोण ठीक लगता है। परंतु!! यह प्रदर्शन के दृष्टिकोण से बहुत खराब है। GetFileSystemInfos () एक बहुत ही कठिन विधि है। वास्तव में, यह फ़ोल्डर के सभी फाइल सिस्टम ऑब्जेक्ट्स को एन्यूमरेट करता है, उनके सभी गुणों को प्राप्त करता है, ऑब्जेक्ट बनाता है, टाइप किए गए एरे को भरता है और यह सब सिर्फ लंबाई की जांच करने के लिए है। यह बेवकूफ है, है ना?
मैंने ऐसे कोड को केवल निर्धारित किया और निर्धारित किया, कि ~ 500ms में इस तरह की ~ 250 कॉल निष्पादित की जाती हैं। यह बहुत धीमा है और मुझे विश्वास है, कि यह बहुत जल्दी करना संभव है।
कोई सुझाव?