在一个文件夹中,我有这些文件。 Windows 资源管理器上的顺序是:
- 输入(1).jpg
- 输入(2).jpg
- 输入(101).jpg
这是我从文件夹中获取文件的方式:
var files = Directory.GetFiles(inputImage, "*.*", SearchOption.TopDirectoryOnly);
但是顺序是:
- 输入(1).jpg
- 输入(101).jpg
- 输入(2).jpg
我什至尝试过:Array.Sort(files);
但是顺序是一样的,我怎样才能按这个顺序加载文件:
- 输入(1).jpg
- 输入(2).jpg
- 输入(101).jpg
最佳答案
好吧,我会尝试这样的事情:
var files = from file in directoryInfo.EnumerateFiles()
.Where(f => f.Extension == ".jpg")
orderby ExtractNumber(file.Name) ascending
select file.FullName;
return files.ToList<string>();
这里我们提取文件编号 - 在 ( 和 )- 之间。
private static object ExtractNumber(string p)
{
int lenght = p.IndexOf(')') - p.IndexOf('(');
return int.Parse(p.Substring(p.IndexOf('('), lenght - 1));
}
我很确定一定有一种有效的方法可以做到这一点,但只是我的两分钱。
关于c# - 使用自然顺序从文件夹加载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11085434/