首页 > 解决方案 > 在特定文件夹中按数字顺序排列文件

问题描述

我有一个仅包含 .txt 文件的文件夹。我希望我的输出有一定的顺序。

每个文件名的前 2 位数字是其唯一 ID。我想按数字顺序对文件进行排序

我研究了多个与此类似的问题,例如 使用 C# 从文件夹中获取所有文件名

但没有人帮助我实现这个目标。获得所需输出的最简单方法是什么?

        string folder = @"C:\Testing\";
        var txtFiles = Directory.GetFiles(folder, "*.txt")
                                 .Select(Path.GetFileName)
                                 .ToList();
        foreach(var f in txtFiles)
        {
            Console.WriteLine(f);
        }
        Console.ReadKey();

视窗探索

在此处输入图像描述

控制台输出

输出文件

标签: c#file

解决方案


这会用零填充第一个数字部分以进行排序:

string folder = @"C:\Testing";
var txtFiles = Directory.GetFiles(folder, "*.txt")
                        .Select(Path.GetFileName)
                        .OrderBy(f => f.Split('_')[0].PadLeft(5, '0'));

foreach (var f in txtFiles)
{
    Console.WriteLine(f); 
}

推荐阅读