如何按字母顺序获取目录的第n个文件?

时间:2014-01-24 19:22:09

标签: c# file indexing directory

我之前没有见过这个,但有没有一个特殊的方法可以打开目录中的 nth 文件?

虽然我没有太多的代码要展示,但我知道这可以得到我的目录大小:

int fileCount = Directory.GetFiles(@"C:\Users\user\Collection").Length;

有“文件索引”这样的东西吗?我不想将它转换为数组,因为它里面有超过900个文件。

EX:我想要目录的第3个文件。它被命名为“test.txt”。

2 个答案:

答案 0 :(得分:1)

Directory.GetFiles returns an array of full paths。只需对其进行排序并通过索引访问它。

var files = Directory.GetFiles(@"C:\Users\user\Collection").OrderBy(name => name).ToArray();
File.ReadAllText(files[index]); <-- index is your N

答案 1 :(得分:1)

您可以使用Directory.EnumerateFiles

var result = Directory.EnumerateFiles(@"C:\Users\user\Collection")
                      .OrderBy(x => x)
                      .Skip(2)
                      .First();
Console.WriteLine(result);

EnumerateFile的优点是您不需要在内存中拥有完整的文件列表,但您可以立即开始应用所需的逻辑