20分
public FileInfo[] order(FileInfo[] files)
{
for (int j = 1; j
{
for (int i = 0; i
{
int bindex=files[i].Name.LastIndexOf(".")-6;
int tempName1=Convert.ToInt32(files[i].Name.Substring(bindex,6));
bindex = files[i+1].Name.LastIndexOf(".") -6;
int tempName2 = Convert.ToInt32(files[i+1].Name.Substring(bindex, 6));
// 如果 [i] > [i+1] ,则 [i] 上浮一位
if ( tempName1> tempName2)
{
FileInfo temp =files[i];
files[i] = files[i + 1];
files[i + 1] = temp;
}
}
}
return files;
}
不知道你说的取后6为是什么,如果全是数字就这个方法试下,如果是数字在其中就自己再处理下,就这个思路。自己再改改吧。
—-
DirectoryInfo di = new DirectoryInfo(@”D:\data”);
FileInfo[] finfo = di.GetFiles();
var orderFiles = finfo.OrderBy(f => Path.GetFileNameWithoutExtension(f.Name).Substring(8, 6)).ToList();
foreach (object s in orderFiles)
{
listBox2.Items.Add(s.ToString());
}
—- 20分
Directory.GetFiles(“c:\\”, “*.*”).OrderBy(x => Path.GetFileName(x).SubString(Path.GetFileName(x).Length – 6))
—-
文件名用16进制表示的,一共有六位,现在想排序,从小到大,并且重新命名,第一个叫1,以此类推2,3,……
—-
引用 4 楼 jhr123321 的回复:
文件名用16进制表示的,一共有六位,现在想排序,从小到大,并且重新命名,第一个叫1,以此类推2,3,……
没关系,十六进制也好十进制也好,都符合ascii序。