如何执行完整的递归目录和文件扫描?

Dan*_*npe 15 .net c# filesystems recursion search

这是我的代码:

    private static void TreeScan(string sDir)
    {
        foreach (string d in Directory.GetDirectories(sDir))
        {
            foreach (string f in Directory.GetFiles(d))
            {
                //Save file f
            }
        }
        TreeScan(d, client);
    }
Run Code Online (Sandbox Code Playgroud)

问题是,它没有得到FILES中的SDIR (启动Directory),它只是变得文件夹和文件的子文件夹.

如何让它从sDir获取文件呢?

Ant*_*ram 45

不要重新发明轮子,使用它的重载GetFiles允许您指定它搜索子目录.

string[] files 
    = Directory.GetFiles(path, searchPattern, SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)

  • 最后有人有道理. (2认同)

Joe*_*csy 9

private static void TreeScan( string sDir )
{
    foreach (string f in Directory.GetFiles( sDir ))
    {
        //Save f :)
    }
    foreach (string d in Directory.GetDirectories( sDir ))
    {
        TreeScan( d ); 
    }
}
Run Code Online (Sandbox Code Playgroud)