files = Directory.GetFiles(mainpath, "animated*.gif", SearchOption.AllDirectories);
Array.Sort(files);
foreach (string str in files)
{
Console.Write(str + " ");
}
文件是字符串[] 文件包含每個索引文件中的51個索引。 例如,在索引0我看到:如何排列數組:string []?
c:\temp\newimages\Changed_Resolution_By_10\SecondProcess_-Width = 102 Height = 102\animated102x102.gif
在索引1我看到:
"c:\temp\newimages\Changed_Resolution_By_10\SecondProcess_-Width = 112 Height = 112\animated112x112.gif"
指數2:
"c:\temp\newimages\Changed_Resolution_By_10\SecondProcess_-Width = 12 Height = 12\animated12x12.gif"
它應該啓動索引0將是:
"c:\temp\newimages\Changed_Resolution_By_10\SecondProcess_-Width = 502 Height = 502\animated502x502.gif"
索引1:
"c:\temp\newimages\Changed_Resolution_By_10\SecondProcess_-Width = 492 Height = 492\animated492x492.gif"
而最後的指數將是:
"c:\temp\newimages\Changed_Resolution_By_10\SecondProcess_-Width = 2 Height = 2\animated2x2.gif"
這應該是秩序。但現在它都是一團糟。 所以我試圖使用Array.Sort,但它不工作。
我也有這個方法,我之前用於排序:
private void Walkdirectoryfulldepth(string dirPath)
{
data = new List<string>();
DirectoryInfo dirInfo = new DirectoryInfo(dirPath);
var sorted = dirInfo.GetDirectories("*.*", SearchOption.TopDirectoryOnly).ToList();
DirectoryInfo[] subDirs = dirInfo.GetDirectories("*.*", SearchOption.TopDirectoryOnly);
string[] strDir = new string[subDirs.Count()];
int i = 0;
foreach (var item in subDirs)
{
strDir[i] = item.FullName;
i++;
}
NumericComparer nc = new NumericComparer();
Array.Sort(strDir, nc);
foreach (var item in strDir)
{
data.Add(Path.GetFileName(item));
}
}
但這種方法得到的字符串不是字符串[] 我想要的到底是該變量的文件將繼續是string [],但排序。
我怎樣才能使另一種方法像Walkdirectoryfulldepth,但這次它會接受字符串[]?
你的意思是你想降序排序? 5還會在1之前出現嗎? –
訂單是正確的。如果您想要降序排列,請在排序後使用.Reverse()。 –
如果你data.sort(),你會得到什麼? – Bit