निर्देशिका.गेटफ़ाइल (लोकलफ़ाइलपाथ, खोजपटल);फ़ाइल नामों को फ़िल्टर करना: * .abcd * या * .abcde के बिना * .abc प्राप्त करना, और
MSDN नोट्स:
जैसे कि ".txt", मिलान व्यवहार जब विस्तार के ठीक तीन वर्ण लंबा है जब विस्तार अधिक है की तुलना में अलग है एक searchPattern में तारांकन वाइल्डकार्ड वर्ण का उपयोग कर, या तीन वर्ण से कम लंबा। एक सटीक तीन वर्णों के फ़ाइल एक्सटेंशन के साथ एक खोज पैटर्न तीन या अधिक वर्णों का विस्तार करने वाली फ़ाइलों को लौटाता है, जहां पहले तीन वर्ण खोजपटल में निर्दिष्ट फ़ाइल एक्सटेंशन से मेल खाते हैं। एक, दो, या तीन से अधिक वर्णों के फ़ाइल एक्सटेंशन के साथ एक खोज पैटर्न केवल उस लम्बाई के एक्सटेंशन वाले फाइलों को लौटाता है जो खोज पैटर्न में निर्दिष्ट फ़ाइल एक्सटेंशन से मेल खाते हैं। प्रश्न चिह्न वाइल्डकार्ड वर्ण का उपयोग करते समय, यह विधि केवल उन फ़ाइलों को लौटाती है जो निर्दिष्ट फ़ाइल एक्सटेंशन से मेल खाते हैं। उदाहरण के लिए, दो फाइलें, "file1.txt" और "file1.txtother", निर्देशिका में, "फ़ाइल? .txt" का एक खोज पैटर्न केवल पहली फ़ाइल देता है, जबकि "फ़ाइल .txt" का एक खोज पैटर्न दोनों फाइलें देता है।
*.abc
रिटर्न के.abc
,.abcd
,.abcde
,.abcdef
, और इतने पर ही विस्तार होने फाइलें:
निम्न सूची searchPattern पैरामीटर के लिए अलग-अलग लंबाई के व्यवहार को दर्शाता है।
*.abcd
केवल .abcd
का विस्तार करने वाली फ़ाइलों को लौटाता है।
*.abcde
केवल .abcde
का विस्तार करने वाली फ़ाइलों को लौटाता है।
*.abcdef
केवल .abcdef
का विस्तार करने वाली फ़ाइलों को लौटाता है।
searchPattern
पैरामीटर
*.abc
करने के लिए सेट के साथ
, मैं .abc
का एक विस्तार, नहीं .abcd
, .abcde
और इतने पर होने फ़ाइलें कैसे लौट सकते हैं?
हो सकता है कि इस समारोह काम करेगा:
private bool StriktMatch(string fileExtension, string searchPattern)
{
bool isStriktMatch = false;
string extension = searchPattern.Substring(searchPattern.LastIndexOf('.'));
if (String.IsNullOrEmpty(extension))
{
isStriktMatch = true;
}
else if (extension.IndexOfAny(new char[] { '*', '?' }) != -1)
{
isStriktMatch = true;
}
else if (String.Compare(fileExtension, extension, true) == 0)
{
isStriktMatch = true;
}
else
{
isStriktMatch = false;
}
return isStriktMatch;
}
परीक्षण कार्यक्रम:
class Program
{
static void Main(string[] args)
{
string[] fileNames = Directory.GetFiles("C:\\document", "*.abc");
ArrayList al = new ArrayList();
for (int i = 0; i < fileNames.Length; i++)
{
FileInfo file = new FileInfo(fileNames[i]);
if (StriktMatch(file.Extension, "*.abc"))
{
al.Add(fileNames[i]);
}
}
fileNames = (String[])al.ToArray(typeof(String));
foreach (string s in fileNames)
{
Console.WriteLine(s);
}
Console.Read();
}
बाकी किसी को बेहतर समाधान?
आप उससे अधिक संदर्भ देने जा रहे हैं ... – Eclipse