[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)]
private static extern int StrCmpLogicalW(string psz1, string psz2);
/// <summary>
/// 根据路径查到文件,按文件名称排序,智能排序,非ASCII码排序
/// </summary>
/// <param name="pathToVersions"></param>
/// <returns></returns>
private static string[] GetFileListByPath(string pathToVersions)
{
var files = new DirectoryInfo(pathToVersions).GetFiles();
var list = files.ToList();
//根据修改时间排序,因为复制会改变创建时间,不会改变修改时间
//list.Sort((a, b) => b.LastWriteTime.CompareTo(a.LastWriteTime));
//list.Sort((a, b) => b.FullName.CompareTo(a.FullName));
//list = files.OrderBy(s => int.Parse(Regex.Match(Regex.Match(s.Name, @"\d+\.7z").Value,@"\d+").Value)).ToList();
//按windows的名称排序,abc_1.0.12.zip、abc_1.0.2.zip、abc_1.0.1.zip
list.Sort((a, b) => StrCmpLogicalW(b.Name,a.Name));
return list.Select(d => d.FullName.Replace(pathToVersions + @"\", "")).ToArray();
}
按windows的文件名称排序,abc_1.0.12.zip、abc_1.0.2.zip、abc_1.0.1.zip,非ASCII码排序。可以调整入参的顺序,实现正序和倒序。例子中为倒序。

最新文章

  1. Volley框架使用笔记
  2. js 简繁体字转换
  3. ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录
  4. paramiko 遭遇socket.error: Socket is closed 错误的解决办法
  5. centos搭建SVN三部曲
  6. 正确修改MySQL最大连接数的三种好用方案
  7. JavaScript中this详解
  8. ExtJs之Field.Trigger和Field.Spinner
  9. JS 网页打印解决方案
  10. DDD 回归具体的业务场景,Domain Model 再再重新设计
  11. Python库的安装方法
  12. [译]ASP.NET Core 2.0 系列文章目录
  13. Power BI连接SSAS(微软的分析服务)进行权限控制(本地部署)
  14. css对齐方案总结
  15. Nginx上部署HTTPS + HTTP2
  16. c++11 强类型枚举
  17. C++ 多用户模式下同一个exe只能运行一次
  18. C# Notes
  19. firefox native extension -- har export trigger
  20. BTSync 2.0 Vs. 1.4 Folders

热门文章

  1. java HashMap 内存泄漏
  2. springmvc的第一个程序
  3. C语言输出多位小数
  4. 【线段树分治 01背包】loj#6515. 「雅礼集训 2018 Day10」贪玩蓝月
  5. Linux - NodeJS安装
  6. k8s Pod的自动水平伸缩(HPA)
  7. destoon ip接口失效修改 修改后偶尔会加载很慢
  8. python数据类型之元组(tuple)
  9. __vet_atags
  10. 原生Ajax+springBoot实现用户登录