繁体   English   中英

遍历根目录并获取其中的所有文件?

[英]Iterate through a root directory and get all files in it?

嗨,我正在创建一个应用程序,我想知道该文件夹下的每个文件.ie如何遍历根目录并让每个文件访问列表一次。

如果您只需要一次列出所有内容,则可以使用包含该选项的GetFiles的重载。

string[] filePaths = Directory.GetFiles(@"c:\MyDir\", "*.*", SearchOption.AllDirectories);

显然,在Web应用程序中,您可能无法访问“c:\\ MyDir”,因此您可以将其替换为包含MapPath调用结果的变量,如下所示:

var rootDir = Server.MapPath("~/App_Data");

使用Directory.EnumerateFiles(字符串,字符串,SearchOption)函数SearchOption.AllDirectories

foreach (var file in Directory.EnumerateFiles(@"c:\", "*.txt", SearchOption.AllDirectories))
{
    // Do stuff here
}

EnumerateFiles方法比GetFiles方法快,因为它实际上只返回枚举器,并且在它们为红色之前实际上不访问文件。

您可以使用DirectoryInfo和FileInfo类以及递归函数。

void Main()
{
    DirectoryInfo info = new DirectoryInfo(@"C:\Personal");
    ListContents(info);
}

public void ListContents(DirectoryInfo info)
{
    foreach(var dir in info.GetDirectories())
    {
        ListContents(dir);
    }
    foreach(var file in info.GetFiles())
    {
        Console.WriteLine(file.FullName);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM