按编号订购文件名

时间:2016-01-30 18:18:43

标签: c# image viewer

我一直在研究一个c#图像查看器,它将从我的计算机中读取图像并在程序中显示它们。

//foreach file in path display the filename

foreach (var filename in Directory.GetFiles(<path>))
{
    MessageBox.show(filename);
}

//Get image by number

var image = Directory.GetFiles(<path>).elementatordefault(<picnumber>).tostring());

我的问题是,即使我的图像按顺序排列在文件夹中:1,2,3,4 ..... 12,13,14 .... 101,102,我的应用程序将显示在以下顺序:1,101,102,12,13,2 ...

我如何以正确的方式显示正确的图像? 我无法相信我需要将每个文件添加到数组或列表然后执行排序算法...(我还需要拆分文件路径和扩展名)必须有一个更简单的方法来执行此操作,任何非常感谢帮助。

2 个答案:

答案 0 :(得分:2)

我终于解决了如何按照自然顺序对文件进行排序的问题。或许有人会发现这段代码也很有用。

        List<string> mylist = new List<string> { };
        foreach (var f in Directory.GetFiles(FilePath1))
        {
            mylist.Add(f);
        }

        var result = mylist.OrderBy(x => x.Length);

答案 1 :(得分:0)

如果您知道文件名的格式,则需要对自己的比较器进行排序和实现。 此主题可能会对您有所帮助:Sorting mixed numbers and strings