按名称c#按数组顺序获取所有文件

时间:2016-09-25 20:14:38

标签: c# filelist

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  

等等

1 个答案:

答案 0 :(得分:0)

你正在按顺序获取它们。问题是它们是字符串,因此您按字符串顺序获取它们。

最直接的解决方案是重命名您的文件,使其具有相同的位数,例如xtrunc - > set.seed(55) x = rnorm(6000) xtrunc = x[x > -1] xtrunc.dist = fitdist(xtrunc, "norm") round(cbind(sapply(list(x=x,xtrunc=xtrunc), function(x) c(mean=mean(x),sd=sd(x))), xtrunc.dist=xtrunc.dist$estimate),3) x xtrunc xtrunc.dist mean -0.007 0.275 0.275 sd 1.009 0.806 0.806

如果你这样做,你的方法就可以了。

如果您不想这样做,则需要在调用排序之前将该数字解析为int。使用正则表达式来做到这一点。