Directory.GetFiles सभी फ़ाइलों को नहीं उठाता है


23

मेरे पास कुछ कोड है जो एक निर्देशिका में फ़ाइलों को प्राप्त करने के लिए है, जो कि काफी सरल है

foreach (var Totalfile in new DirectoryInfo(rootfolder).GetFiles("*Totals*.csv", SearchOption.TopDirectoryOnly))

फाइलें इस प्रकार हैं:

Totals.CSV142344
Totals.CSV142409
Totals.CSV142433
Totals.CSV142501
Totals.CSV142528

मेरा मुद्दा यह है कि यह अंतिम फ़ाइल नहीं उठा रहा है।

मैंने इसे डालकर कोड तय किया है:

foreach (var Totalfile in new DirectoryInfo(rootfolder).GetFiles("*Totals*.csv*", SearchOption.TopDirectoryOnly))

कहने को कोई भी फाइल मिलती है जिसमें टोटल और .csv दोनों होते हैं। कुछ भी .csv के बाद।

मुझे जो नहीं मिला वह यह है कि इसे शीर्ष चार फाइलें क्यों मिलीं, लेकिन नीचे नहीं।

मैंने सोचा होगा कि कोई भी फाइल मूल कोड द्वारा नहीं उठाई जाएगी?


1
क्या विचाराधीन फ़ाइल को हटा दिया गया है, लेकिन एंटीवायरस या इसी तरह खुला रखा गया है? इससे एक "भूत" फ़ाइल हो सकती है जहां एक्सप्लोरर अभी भी इसे सूचीबद्ध करता है, लेकिन यह वास्तव में डिस्क पर मौजूद नहीं है।
लास वी। कार्लसन

6
जाहिरा तौर पर पहली चार फाइलों में 8.3 नाम है और अंतिम एक नहीं है।
GSerg

1
संक्षिप्त नाम आपका नेमसिस है, जब बहुत सारी फाइलें होती हैं तो Totals~n.csvअब फिट नहीं होती है और आप केवल एक मैच प्राप्त कर सकते हैं Total*dir /x tot*.*संक्षिप्त नाम देखने के लिए टाइप करें। आप एहसान करते हैं Totals.csv*और आकस्मिक मैचों को खत्म करने के लिए फ़िल्टर करना पड़ सकता है।
हंस पसंत

जवाबों:


20

जाहिर तौर पर GetFilesपैटर्न मिलान तर्क का पालन करता है क्योंकि इसे dirकमांड कहा जाता है ।

MSDN

क्योंकि यह विधि 8.3 फ़ाइल नाम प्रारूप और लंबे फ़ाइल नाम प्रारूप दोनों के साथ फ़ाइल नामों के खिलाफ जांच करती है, एक खोज पैटर्न "*1*.txt"अप्रत्याशित फ़ाइल नामों को वापस कर सकती है। उदाहरण के लिए, "*1*.txt"रिटर्न का एक खोज पैटर्न "longfilename.txt" का उपयोग करते हुए क्योंकि समकक्ष 8.3 फ़ाइल नाम प्रारूप "LONGFI ~ 1.TXT" है।

जैसा कि @GSerg ने बताया कि आपकी कुछ फाइलों का मिलान 8.3 नाम से है।

dir /x *Totals*.csv*

2020-01-31  09:33                 0 TOTALS~1.CSV Totals.CSV142344
2020-01-31  09:33                 0 TOTALS~2.CSV Totals.CSV142409
2020-01-31  09:33                 0 TOTALS~3.CSV Totals.CSV142433
2020-01-31  09:33                 0 TOTALS~4.CSV Totals.CSV142501
2020-01-31  09:33                 0 TO5404~1.CSV Totals.CSV142528

Totals.csv*सभी फ़ाइलों से मेल खाने के लिए पैटर्न बदलने का प्रयास करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.