1

根据MSDN 上的文档DirectoryInfo.EnumerateFiles,该过程涉及:

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

有一些底层类可以检索这些信息,例如FileInfo依赖于FileSystemInfo.

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. 我将如何读取列表可枚举数据?

谢谢

4

2 回答 2

1
  1. 你为什么想要?
  2. var list = DR.EnumerateFiles().ToList();
于 2013-03-26T15:26:44.413 回答
0

您要尝试做什么并不是那么清楚,但尽管如此,您可以通过执行以下操作“在使用它之前声明它”:

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实例,您可以使用为您提供的构造函数来执行此操作。

要完成您所说的“列表”位,您只需添加ToList(),LINQ 将为您完成工作:

List<FileInfo> fileInfos = filePaths.Select(f => new FileInfo(f)).ToList();
于 2013-03-26T16:13:36.353 回答