如何使用DirectoryInfo.EnumerateFiles

本文关键字:EnumerateFiles DirectoryInfo 何使用 | 更新日期: 2023-09-27 18:06:01

根据DirectoryInfo.EnumerateFiles的MSDN文档,该过程包括:

  1. 用路径
  2. 声明DirectoryInfo
  3. 使用EnumerateFiles方法检索文件

有检索此信息的底层类,例如依赖于FileSystemInfoFileInfo

DirectoryInfo DR = new DirectoryInfo(@"C:'temp'Downloads");
foreach(FileInfo FF in DR.EnumerateFiles())
{ 
    textBox1.Text += FF.ToString()+ "'r'n"; 
}
  1. 我如何重新编码,我可以在使用它之前声明FileInfo直接吗?
  2. 如果我要使用List<T>,我该如何重新编码?
  3. 如何读取列表可枚举数据?

谢谢

如何使用DirectoryInfo.EnumerateFiles

  1. 你为什么想要?
  2. var list = DR.EnumerateFiles().ToList();

这并不是很清楚你想要做什么,但是,你可以在使用它之前声明它,通过做下面的事情:

DirectoryInfo DR = new DirectoryInfo(@"C:'temp'Downloads");
List<string> filePaths = DR.EnumerateFiles();
IEnumerable<FileInfo> fileInfos = filePaths.Select(f => new FileInfo(f));
foreach(FileInfo fileInfo in fileInfos)
{ 
    textBox1.Text += fileInfo.FullName.ToString()+ "'r'n"; 
}

(也就是说,只需将声明移到foreach循环的之外)

由于EnumerateFiles返回文件的完整路径,因此您需要从中创建FileInfo实例,这可以使用为您提供的构造函数来完成。

要做你所说的'list'位,你只需要添加ToList(), LINQ将为你完成工作:

List<FileInfo> fileInfos = filePaths.Select(f => new FileInfo(f)).ToList();