2011-09-19 10 views
8

मैं हैकैसे करता है, तो फ़ाइल नाम सी # में स्ट्रिंग शामिल की जाँच करने के

  1. myfileone
  2. myfiletwo
  3. myfilethree

नामित फाइलों के साथ एक फ़ोल्डर मैं कैसे जांच कर सकते हैं फ़ाइल "myfilethree" है वर्तमान।

मेरा मतलब है IsFileExist() विधि के अलावा कोई और तरीका है, यानी फ़ाइल नाम में "तीन" सबस्ट्रिंग है?

+2

यदि आपके पास कोई ऐसा समाधान है जो काम करता है (यानी 'फाइल.एक्सिस्ट्स'), क्या आप इस बारे में अधिक समझा सकते हैं कि आप ऐसा करने का प्रयास कर रहे हैं जिससे आपको वैकल्पिक समाधान की आवश्यकता हो सकती है? –

उत्तर

16

सबस्ट्रिंग:

bool contains = Directory.EnumerateFiles(path).Any(f => f.Contains("three")); 

केस-असंवेदी सबस्ट्रिंग:

bool contains = Directory.EnumerateFiles(path).Any(f => f.IndexOf("three", StringComparison.OrdinalIgnoreCase) > 0); 

केस-असंवेदी तुलना: मिलान

bool contains = Directory.EnumerateFiles(path).Any(f => String.Equals(f, "myfilethree", StringComparison.OrdinalIgnoreCase)); 

प्राप्त करें फ़ाइल नाम एक वाइल्डकार्ड मापदंड:

IEnumerable<string> files = Directory.EnumerateFiles(path, "three*.*"); // lazy file system lookup 

string[] files = Directory.GetFiles(path, "three*.*"); // not lazy 
+0

यह काम किया। धन्यवाद Abatischev – sreeprasad

+0

@SreePRASADGOVINDANKUTTY खुशी हुई यह मदद की :) – abatishchev

+0

महान जवाब, हालांकि मैं इसे 2 सूचियों के साथ कैसे करूं? मेरे पास एक सूची है जिसे मैं तुलना करना चाहता हूं। – Robula

3

अगर मैं आपके सवाल का सही ढंग से समझ, आप

Directory.GetFiles(directoryPath, "*three*")

या

Directory.GetFiles(directoryPath).Where(f => f.Contains("three"))

की तरह कुछ कर सकता है इन दोनों के आप three में साथ सभी फ़ाइलों के सभी नाम दे देंगे यह।

0

मैं आईओ से परिचित नहीं हूं लेकिन शायद यह काम करेगा? ध्यान दें कि यह रिटर्न तार के सरणी: using System.Linq

System.IO.Directory.GetFiles("PATH").Where(s => s.Contains("three")); 

संपादित करें की आवश्यकता है।

संबंधित मुद्दे