3

選択したフォルダのすべてのファイルを表示したい。つまり、そのフォルダのファイルと、その選択したフォルダにあるサブフォルダのファイル。

例 -

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;
} 

今何をする?

4

2 に答える 2

13

使うだけ

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

これで再帰が処理されます。

于 2012-10-19T12:13:30.197 に答える
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);
    }
}
于 2012-10-19T12:05:31.073 に答える