एक निर्देशिका फ़ोल्डर जो किसी वैध फ़ोल्डर (ड्राइव जड़ों को छोड़कर) को इंगित करता है, तो DirectoryInfo.GetDirectories(".") को कॉल करते समय, परिणाम एक निर्देशिकाइन्फो सरणी है जिसका पहला (और केवल) तत्व एक अमान्य निर्देशिका को इंगित करता है जो स्वयं के जैसा ही है ।क्या यह निर्देशिकाInfo.GetDirectories (स्ट्रिंग सर्च पैटर्न) में एक बग है?
उदाहरण के लिए:
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo("c:\\temp");
DirectoryInfo[] dis = di.GetDirectories(".");
Console.WriteLine(dis[0].FullName);
}
प्रिंटों बाहर एक न के बराबर निर्देशिका: "।"
c:\temp\temp
मैं समझता हूँ कि Windows में, एक वर्तमान निर्देशिका को संदर्भित करता है। यह विधि मेरे लिए स्वीकार्य हो सकती है यदि विधि "c: \ temp" लौटा दी गई है, लेकिन एक ही नाम के साथ एक नकली उपनिर्देशिका लौटाना बिल्कुल गलत व्यवहार जैसा लगता है।
मुझे यह ज़ोर देने में सक्षम होना चाहिए कि इस फ़ंक्शन से लौटाई गई कोई भी निर्देशिकाइन्फ़ ऑब्जेक्ट वास्तव में मौजूद है .... सही ?!
मैं कक्षा नेट परावर्तक का उपयोग कर decompiled है, लेकिन यह इस पद्धति
internal static string[] InternalGetFileDirectoryNames(string path, string userPathOriginal, string searchPattern, bool includeFiles, bool includeDirs, SearchOption searchOption)"
जो एक जानवर है और मैं मेरे सिर में तर्क के माध्यम से चलने की तरह नहीं लग रहा है की ओर जाता है। यह स्पष्ट रूप से एक बग IMHO है।
एफवाईआई - किसी से पूछने से पहले "*" अपेक्षा के अनुसार काम करता है।
दिलचस्प है कि मदद का उल्लेख है .. लेकिन नहीं करने के लिए। – Greg
आपके पास एक अच्छा बिंदु है। हालांकि, यह उन चीजों में से एक नहीं है जो "हमेशा इस तरह से होते हैं" और हर कोई हमेशा फ़िल्टर करता है। और .. निर्देशिका लिस्टिंग? – ScottCher
@ डॉस्क में स्कॉटशेर अगर मैं "डीआईआर" करता हूं। एक निर्देशिका में, मुझे कोई अस्तित्वहीन परिणाम नहीं मिलते हैं। मुझे बस मिलता है "।" और ".." (दोनों जिनमें से मौजूद हैं) – TheSoftwareJedi