一个目录中有如下所示的文件

在读取该目录的文件后,文件名将按照 0、1、11、12、13、14、..........的顺序来进行排列,而不是上图中的顺序进行排列,此时可以通过调用Windows的 Shlwapi.dll 来对读取后的文件进行排序。

1、先创建一个继承自 IComparer 的类,可以将该类的访问属性设置为 public (若设置为私有,则只能在该工程中被使用)

using System;
using System.Collections;
using System.Runtime.InteropServices;  // 必须含有该引用
using System.Text;namespace SortByFileName
{public class FileNameSort:IComparer{//调用windos 的 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());}}
}

2、在其它的类中调用该类,对文件名进行排序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;namespace SortByFileName
{class Program{static void Main(string[] args){string path = @"E:\Data\Test";DirectoryInfo directoryInfo = new DirectoryInfo(path);FileInfo[] files = directoryInfo.GetFiles("*.txt");Array.Sort(files, new FileNameSort()); // 对获取的文件名进行排序foreach (var theFile in files){Console.WriteLine(theFile);}Console.ReadKey();}}
}

3、排序结果如下图所示

C# 对目录中的文件名按照数字序号进行排序相关推荐

  1. Python os.walk() 方法--输出在目录中的文件名

    概述 os.walk() 方法是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下. 语法 ...

  2. 令数组中的对象根据数字大小进行排序

    JavaScript sort() 方法 JavaScript Array 对象 定义和用法 sort() 方法用于对数组的元素进行排序. 语法 arrayObject.sort(sortby) 参数 ...

  3. mysql 数据库中 ,按照字母加数字的字符串排序

    left(c.CODE,1),convert(substr(c.CODE,2,length(c.CODE)-1),SIGNED) https://zhidao.baidu.com/question/1 ...

  4. 如何使用C或C ++获取目录中的文件列表?

    如何从C或C ++代码内部确定目录中的文件列表? 我不允许执行ls命令并从程序中解析结果. #1楼 GNU手册FTW http://www.gnu.org/software/libc/manual/h ...

  5. 如何在两个目录中删除其中一个目录中同名文件

    2019独角兽企业重金招聘Python工程师标准>>> 假设现在有一个目录/mnt/data,还有另外一个目录/opt/data,需要删除/opt/data目录中和/mnt/data ...

  6. Java中FTPClient上传中文目录、中文文件名乱码问题解决方法

    Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 参考文章: (1)Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 (2)https://www.cnblog ...

  7. php获取目录中的所有文件名

    <?php/*** [php获取目录中的所有文件名]*///1.先打开要操作的目录,并用一个变量指向它 //打开当前目录下的目录pic下的子目录common.$handler = opendir ...

  8. VBA中关于WORD的基本应用 比如批量改页眉页脚,从文件名取数字作为页眉等等。

    VBA中关于WORD的基本应用 比如批量改页眉页脚,从文件名取数字作为页眉等等. 以下是代码,直接在Word的VBA编辑器里粘贴上去就OK了. Sub 批量转PDF() Dim i As Varian ...

  9. EXCEL 批量生成sheet表+生成超链接目录+某列按多条件去重罗列+提取单元格中的字母、数字

    文章目录 前言 一.EXCEL 公式实现多个条件值匹配 二.EXCEL 工作薄下SHEET表太多时你可以这样做 1.生成多个相同表头的SHEET表 1.1.批量生成SHEET表 1.2.批量更改多个S ...

  10. linux 触摸屏在dev的那个目录下,各硬件设备在Linux中的文件名

    原标题:各硬件设备在Linux中的文件名 选择好你的硬件设备以后,接下来得要了解一下各硬件在Linux当中扮演得角色.再次强调一下:"在Linux系统中,每个设备都被当成一个文件来对峙&qu ...

最新文章

  1. python核心装饰_Python核心编程 | 装饰器
  2. 服务器开发的一些框架或者工具收集
  3. Android 判断当前联网的类型 wifi、移动数据流量
  4. 麻瓜编程python爬虫微专业_麻瓜编程 - 主页
  5. 聚类算法(part1)--DBSCAN
  6. 《计算复杂性:现代方法》——0.2 判定问题/语言
  7. HDU - 6621 K-th Closest Distance——主席树+二分
  8. Web安全之权限攻击
  9. 【转】QT中使用MYSQL中文乱码解决方法
  10. NSLog 打印出方法函数,行数,内容
  11. 1424 零树 (树形DP)
  12. SimpleXML系列函数操作XML
  13. MySql 表的分区介绍
  14. 利用密码字典暴力破解渗透目标系统
  15. 《Java开发实战经典》习题第4章第10题:在排序好的数组中添加一个数字,将添加后的数字插入到数组合适的位置
  16. 程序员是否要考PMP认证?看这篇就够了
  17. ps钢笔工具的一些快捷键操作(小白请进)
  18. BMVC2020 Best Paper: Delving Deeper into Anti-aliasing in ConvNets论文解读
  19. centos7 wget无法解析主机域名的解决办法
  20. Java爬虫Jsoup爬取必应壁纸

热门文章

  1. win7计算机窗口左边被改了,win7电脑开始菜单变成经典模式?三种方法教你改回来...
  2. CSS 深入理解absolute
  3. Invisible Backdoor Attack with Sample-Specific Triggers 论文笔记
  4. Linux系统centos下如何通过命令查看CPU内存存储等硬件信息?
  5. 控制算法和编程算法_算法中的编程公平性
  6. 怎么取消linux ssh互信,[系统-linux] ssh互信操作
  7. 电脑桌面只显示计算机不显示文件夹,如何解决电脑桌面不显示拷贝文件的问题?...
  8. IE报证书错误提示页面,如何屏蔽?
  9. Prumo、bp和西门子与SPIC就巴西能源项目达成合作伙伴关系
  10. anaconda conda环境管理命令