C#显示所选文件夹中的所有文件

omk*_*ade 3 c# wpf directoryinfo fileinfo

我想显示所选文件夹中的所有文件..即该文件夹中的文件和该选定文件夹中子文件夹中的文件.

示例 -

我选择了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;
} 
Run Code Online (Sandbox Code Playgroud)

现在做什么?

Raw*_*ing 11

只是用

FileInfo[] info = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)

这将为您处理递归.


Dmi*_*oly 8

您应该递归地从所有子文件夹中选择文件.

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);
    }
}
Run Code Online (Sandbox Code Playgroud)