尝试以数字方式对文件进行排序。文件列表:
1.JPG 2.JPG 3.JPG jpg 10.JPG 11.JPG 20.jpg
这个列表将按如下顺序排列:
1.JPG 10.JPG 11.JPG 2.JPG 20.jpg 3.JPG 4.JPG
private void button1_Click(object sender, EventArgs e)
{
string x = txtPath.Text;
string[] path = Directory.GetFiles(x);
string[] filePaths = path;
foreach (string element in filePaths)
{
lb1.Items.Add(Path.GetFileName(element));
}
lb1.Sorted = true;
}
答案 0 :(得分:0)
他们正在以这种方式排序,因为它们是字符串,并尝试按字典顺序排序。
尝试这样的事情:
string[] line = { "file1.jpg", "file2.jpg", "file10.jpg"};
Regex r = new Regex("/d+");
var result = line.OrderBy(x => r.Match(x).Value);
如果你想要一个字符串,请使用:
string[] result = line.OrderBy(x => r.Match(x).Value).ToArray<string>();
根据您的需要进行调整。
输出是:
文件1
file2的
file10
答案 1 :(得分:0)
您可以提取图片的编号并将其解析为某个int编号,对其进行排序,然后将其放置到扩展名中。
答案 2 :(得分:0)
ls -v * .jpg
检查ls手册页。