循环访问根目录并获取其中的所有文件

本文关键字:文件 访问 根目录 获取 循环 | 更新日期: 2023-09-27 17:56:42

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

循环访问根目录并获取其中的所有文件

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

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

显然,在Web应用程序中,您不太可能访问"c:''MyDir",因此您可以将其替换为保存MapPath调用结果的变量,如下所示:

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

将 Directory.EnumerateFiles(String, String, SearchOption) 函数与 SearchOption.AllDirectories 一起使用:

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

枚举文件方法比 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);
    }
}