2012-10-19 52 views
2

我想顯示選定文件夾中的所有文件..即該文件夾中的文件和該文件夾中子文件夾中的文件。C#顯示選定文件夾中的所有文件

示例 -

我已經選擇了D:\ Eg。現在我有一些txt和pdf文件。此外,我也有其中包含一些PDF文件的子文件夾。現在我想在數據網格中顯示所有這些文件。

我的代碼是

public void selectfolders(string filename) 
{  
    FileInfo_Class fclass; 
    dirInfo = new DirectoryInfo(filename); 

    FileInfo[] info = dirInfo.GetFiles("*.*"); 
    foreach (FileInfo f in info) 
    { 

     fclass = new FileInfo_Class(); 
     fclass.Name = f.Name; 
     fclass.length = Convert.ToUInt32(f.Length); 
     fclass.DirectoryName = f.DirectoryName; 
     fclass.FullName = f.FullName; 
     fclass.Extension = f.Extension; 

     obcinfo.Add(fclass); 
    } 
    dataGrid1.DataContext = obcinfo; 
} 

現在怎麼辦?

+0

你也許會發現這個問題很有用:http://stackoverflow.com/questions/929276/how-to-recursively-list-all-the-files-in-a-directory-in-c – dash

回答

7

您應該從recursively中選擇所有子文件夾中的文件。

public void selectfolders(string filename) 
{ 
    FileInfo_Class fclass; 
    DirectoryInfo dirInfo = new DirectoryInfo(filename); 

    FileInfo[] info = dirInfo.GetFiles("*.*"); 
    foreach (FileInfo f in info) 
    { 
     fclass = new FileInfo_Class(); 
     fclass.Name = f.Name; 
     fclass.length = Convert.ToUInt32(f.Length); 
     fclass.DirectoryName = f.DirectoryName; 
     fclass.FullName = f.FullName; 
     fclass.Extension = f.Extension; 
     obcinfo.Add(fclass); 
    } 
    DirectoryInfo[] subDirectories = dirInfo.GetDirectories(); 
    foreach(DirectoryInfo directory in subDirectories) 
    { 
     selectfolders(directory.FullName); 
    } 
} 
+0

它的工作原理。 。 謝了哥們! –

10

只需使用

FileInfo[] info = dirInfo.GetFiles("*.*", SearchOption.AllDirectories); 

將處理遞歸你。

相關問題