循环访问根目录并获取其中的所有文件
本文关键字:文件 访问 根目录 获取 循环 | 更新日期: 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);
}
}