मैंने विधियों के System.IO.Directory
में एक अनियंत्रित व्यवहार पर ठोकर खाई।निर्देशिका। गेटफाइल को कोई भी फाइल नहीं मिली
जब भी searchPattern
पैरामीटर विधि के लिए पारित एक सुरक्षित विंडोज डिवाइस का नाम शामिल है, इस तरह के "nul.*"
या "aux.bmp"
के रूप में, विधि एक सरणी एक nonexisting फ़ाइल के नाम वाले, C:\Users\ft1\nul
या D:\aux
की तरह देता है, आदि
मैं आश्चर्य है कि क्या उन डिवाइस नामों का एक विशेष अर्थ है, यह संदर्भ, जैसे "।" या "..", या अगर यह सिर्फ एक प्रकार का बग है। वैसे भी, वह अभी भी बहुत अजीब लगता है। उदाहरण के लिए, सी # में इस कोड स्निपेट:
string[] fileNames = Directory.GetFiles(@"C:\D:\..\..\...\", "con.txt");
foreach (string fileName in fileNames) Console.WriteLine(fileName);
प्रिंट
C:\D:\..\..\...\con
कोई सुराग?
क्या आप जानते हैं यदि .नेट फ्रेमवर्क ऐसे आरक्षित नामों में से किसी में निर्मित सूची है? –
यह एक अच्छा सवाल है, शायद यह एक बेहतर एसओ सवाल के रूप में पूछना बेहतर होगा, लेकिन सवाल के बाद [अगर जांच की गई स्ट्रिंग विंडोज के तहत कानूनी (अनुमति) फ़ाइल नाम है तो जांचें?] (Http://stackoverflow.com/प्रश्न/62771/कैसे-चेक-अगर-दिया-स्ट्रिंग-कानूनी-अनुमति-फ़ाइल-नाम-अंडर-विंडोज़) पहले से ही पूछा गया है, मैं आपको लिंक दूंगा। –
आपको बहुत धन्यवाद एरिक! –