-1

文字列 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  

等々

4

1 に答える 1

0

あなたはそれらを順番に取得しています。問題は、それらが文字列であるため、文字列順に取得していることです。

最も簡単な解決策は、ファイルの名前を変更して、同じ桁数になるようにすることです。たとえば、banner-noche-estrellas-zacatecas2015_2.jpg->banner-noche-estrellas-zacatecas2015_02.jpg

そうすれば、あなたの方法はうまくいきます。

それをしたくない場合は、並べ替えを呼び出す前に、その数値を int として解析する必要があります。そのために正規表現を使用します。

于 2016-09-25T20:18:32.977 に答える