2011-12-27 30 views
6

मैं इसएक स्ट्रिंग सरणी सी #

try 
      { 
       DirectoryInfo Dir = new DirectoryInfo(DirPath); 
       FileInfo[] FileList = Dir.GetFiles("*.*", SearchOption.AllDirectories); 


       foreach (FileInfo FI in FileList) 
       { 
        Console.WriteLine(FI.FullName); 
       } 

      } 
      catch (Exception e) 
      { 
       Console.WriteLine(e.ToString()); 
      } 

की तरह एक FileInfo सरणी बनाने में एक FileInfo सरणी परिवर्तित और यह सरणी फ़ोल्डर में सभी फ़ाइल नाम धारण = DirPath

मैं FileInfo सरणी के माध्यम से पाशन के बारे में सोचा और इसे एक स्ट्रिंग सरणी में कॉपी करें। क्या यह ठीक है या क्या एक क्लीनर विधि है?

+0

[Directory.GetFiles()] (http://msdn.microsoft.com/en-us/library/ms143316.aspx) का उपयोग करें यदि आपको ** पूर्ण ** पथ – Reniuz

+0

var files = System.IO के साथ फ़ाइल की आवश्यकता है डायरेक्टरी। गेटफाइल ("सी: \\ टेस्ट \\", "*। *"); –

उत्तर

11

LINQ का उपयोग करना:

FileList.Select(f => f.FullName).ToArray(); 

वैकल्पिक रूप से, Directory का उपयोग कर आप फ़ाइल नाम सीधे प्राप्त कर सकते हैं।

string[] fileList = Directory.GetFiles(DirPath, "*.*", 
             SearchOption.AllDirectories); 
+0

हाय मैं उप निर्देशिकाओं में फ़ाइलों को शामिल नहीं करना चाहता हूं? मैं उप निर्देशिका फ़ाइलों को कैसे हटा सकता हूं? – klijo

+1

@klijo - आपने 'SearchOption.AllDirectories' का उपयोग क्यों किया? यही वह है जो करता है। या तो एक ओवरलोड का उपयोग करें जो 'SearchOption' गणना का उपयोग नहीं करता है या इसे 'SearchOption.TopDirectoryOnly' में बदलता है। – Oded

2

आप अन्य तरीके से (FileInfo के में स्ट्रिंग सरणी परिवर्तित) जाने के लिए आप निम्न का उपयोग कर सकते हैं:

string[] files; 
var fileInfos = files.Select(f => new FileInfo(f)); 
List<FileInfo> infos = fileInfos.ToList<FileInfo>(); 
1

LINQ एक महान soluction है, लेकिन लोगों को, जो नहीं है के लिए

static string BlastWriteFile(FileInfo file) 
    { 
     string blasfile = " "; 
     using (StreamReader sr = file.OpenText()) 
     { 
      string s = " "; 
      while ((s = sr.ReadLine()) != null) 
      { 
       blasfile = blasfile + s + "\n"; 
       Console.WriteLine(); 
      } 
     } 
     return blasfile; 
    } 
0

यह एक

DirectoryInfo directory = new DirectoryInfo("your path"); 
List<string> Files = (directory.GetFiles().Where(file => file.LastWriteTime >= date_value)).Select(f => f.Name).ToList(); 
का प्रयास करें: LINQ का उपयोग करना चाहते, मैं इस समारोह बना दिया

आप तारीख के साथ एक फिल्टर नहीं करना चाहते हैं, तो आप बस नीचे दिए गए कोड

List<string> logFiles = directory.GetFiles().Select(f => f.Name).ToList(); 

साथ परिवर्तित कर सकते हैं जब आप फ़ाइल का पूरा पथ की जरूरत है, तो आप Name के बजाय FullName उपयोग कर सकते हैं।

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