新建一个文件排序类
public class FileNameSort : IComparer
{
//调用DLL
[System.Runtime.InteropServices.DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)]
private static extern int StrCmpLogicalW(string param1, string param2);
//前后文件名进行比较。
public int Compare(object name1, object name2)
{
if (null == name1 && null == name2)
{
return 0;
}
if (null == name1)
{
return -1;
}
if (null == name2)
{
return 1;
}
return StrCmpLogicalW(name1.ToString(), name2.ToString());
}
}
然后进行文件按照名称排序。
public void sortFiles(string SourcePath){
//获取文件夹中所有的pdf文件路径集合
DirectoryInfo dirScan = new DirectoryInfo(SourcePath);
//获取所有pdf文件
FileInfo[] fileinfo = dirScan.GetFiles("*.pdf");
//根据文件名排序,保持与电脑文件夹里面按照名称排序获取的文件顺序一致 FileNameSort是专门写的排序类,重要!!!
Array.Sort(fileinfo, new FileNameSort());
}
FileNameSort 类参考文章:参考文章