按名称c#按数组顺序获取所有文件
Get all files in array order by name c#
string mypath = txtPath.Text;
DirectoryInfo d = new DirectoryInfo(mypath);
foreach (FileInfo fi in d.EnumerateFiles("*.jpg").OrderBy(x => x.Name))
txtStatus.Text = txtStatus.Text + fi.Name + Environment.NewLine;
我得到的结果是这个
banner-noche-estrellas-zacatecas2015.jpg
banner-noche-estrellas-zacatecas2015_10.jpg
banner-noche-estrellas-zacatecas2015_11.jpg
banner-noche-estrellas-zacatecas2015_12.jpg
banner-noche-estrellas-zacatecas2015_13.jpg
banner-noche-estrellas-zacatecas2015_14.jpg
banner-noche-estrellas-zacatecas2015_15.jpg
banner-noche-estrellas-zacatecas2015_16.jpg
banner-noche-estrellas-zacatecas2015_17.jpg
banner-noche-estrellas-zacatecas2015_18.jpg
banner-noche-estrellas-zacatecas2015_19.jpg
banner-noche-estrellas-zacatecas2015_2.jpg
banner-noche-estrellas-zacatecas2015_20.jpg
banner-noche-estrellas-zacatecas2015_21.jpg
我应该得到这个:
banner-noche-estrellas-zacatecas2015.jpg
banner-noche-estrellas-zacatecas2015_2.jpg
banner-noche-estrellas-zacatecas2015_3.jpg
等等
您正在整理它们。问题是它们是字符串,因此您按字符串顺序获取它们。
最直接的解决方案是重命名您的文件,使它们具有相同的位数,例如banner-noche-estrellas-zacatecas2015_2.jpg
-> banner-noche-estrellas-zacatecas2015_02.jpg
如果你这样做,你的方法就会奏效。
如果您不想这样做,则需要在调用排序之前将该数字解析为 int。使用正则表达式来做到这一点。
string mypath = txtPath.Text;
DirectoryInfo d = new DirectoryInfo(mypath);
foreach (FileInfo fi in d.EnumerateFiles("*.jpg").OrderBy(x => x.Name))
txtStatus.Text = txtStatus.Text + fi.Name + Environment.NewLine;
我得到的结果是这个
banner-noche-estrellas-zacatecas2015.jpg
banner-noche-estrellas-zacatecas2015_10.jpg
banner-noche-estrellas-zacatecas2015_11.jpg
banner-noche-estrellas-zacatecas2015_12.jpg
banner-noche-estrellas-zacatecas2015_13.jpg
banner-noche-estrellas-zacatecas2015_14.jpg
banner-noche-estrellas-zacatecas2015_15.jpg
banner-noche-estrellas-zacatecas2015_16.jpg
banner-noche-estrellas-zacatecas2015_17.jpg
banner-noche-estrellas-zacatecas2015_18.jpg
banner-noche-estrellas-zacatecas2015_19.jpg
banner-noche-estrellas-zacatecas2015_2.jpg
banner-noche-estrellas-zacatecas2015_20.jpg
banner-noche-estrellas-zacatecas2015_21.jpg
我应该得到这个:
banner-noche-estrellas-zacatecas2015.jpg
banner-noche-estrellas-zacatecas2015_2.jpg
banner-noche-estrellas-zacatecas2015_3.jpg
等等
您正在整理它们。问题是它们是字符串,因此您按字符串顺序获取它们。
最直接的解决方案是重命名您的文件,使它们具有相同的位数,例如banner-noche-estrellas-zacatecas2015_2.jpg
-> banner-noche-estrellas-zacatecas2015_02.jpg
如果你这样做,你的方法就会奏效。
如果您不想这样做,则需要在调用排序之前将该数字解析为 int。使用正则表达式来做到这一点。