对于文件和文件夹有多种排序方式,常用的就是按创建或修改时间、按文件名排序。在 C# 中,按时间和文件名排序都十分简单,用数组提供的排序方法 Array.Sort() 一行代码就可以搞定,当然也可以用常用的排序方法,如快速排序、冒泡排序等。

文件排序的方法也适用于文件夹,只是传递的变量不同。为了便于使用,将分别列出C#文件排序和文件夹排序四种常用方法,分别为:按名称顺序与倒序排序、按时间顺序与倒序。

一、C#文件排序
  1、按名称顺序排列

/// <summary>/// C#按文件名排序(顺序)/// </summary>/// <param name="arrFi">待排序数组</param>private void SortAsFileName(ref FileInfo[] arrFi){Array.Sort(arrFi, delegate(FileInfo x, FileInfo y) { returnx.Name.CompareTo(y.Name); });}

调用方法:

private void SortFiles(){string filePath = "E:\\";DirectoryInfo di = new DirectoryInfo(filePath);FileInfo[] arrFi = di.GetFiles("*.*");SortAsFileName(ref arrFi);for (int i = 0; i < arrFi.Length; i++)Response.Write(arrFi[i].Name + ":<br />");}

上面的代码是对 E 盘根目录下的所有文件排序,代码测试通过,可直接调用。

2、按名称倒序排列

/// <summary>/// C#按文件名排序(倒序)/// </summary>/// <param name="arrFi">待排序数组</param>private void SortAsFileName(ref FileInfo[] arrFi){Array.Sort(arrFi, delegate(FileInfo x, FileInfo y) { returny.Name.CompareTo(x.Name); });}

调用方法跟顺序排列一样,就不举例了。

3、按创建时间顺序排列

/// <summary>/// C#按创建时间排序(顺序)/// </summary>/// <param name="arrFi">待排序数组</param>private void SortAsFileCreationTime(ref FileInfo[] arrFi){Array.Sort(arrFi, delegate(FileInfo x, FileInfo y) { returnx.CreationTime.CompareTo(y.CreationTime); });}

调用方法与上同。

4、按创建时间倒序排列

/// <summary>/// C#按创建时间排序(倒序)/// </summary>/// <param name="arrFi">待排序数组</param>private void SortAsFileCreationTime(ref FileInfo[] arrFi){Array.Sort(arrFi, delegate(FileInfo x, FileInfo y) { returny.CreationTime.CompareTo(x.CreationTime); });}

调用方法与上同。

二、C#文件夹排序
  1、按文件夹名称顺序排列

/// <summary>/// C#按文件夹名称排序(顺序)/// </summary>/// <param name="dirs">待排序文件夹数组</param>private void SortAsFolderName(ref DirectoryInfo[] dirs){Array.Sort(dirs, delegate(DirectoryInfo x, DirectoryInfo y) { returnx.Name.CompareTo(y.Name); });}

调用方法:

private void FolderSort(){string filePath = "E:\\";DirectoryInfo di = new DirectoryInfo(filePath);DirectoryInfo[] arrDir = di.GetDirectories();SortAsFolderName(ref arrDir);for (int i = 0; i < arrDir.Length; i++)Response.Write(arrDir[i].Name + ":<br />");}

上述代码是对 E 盘根目录下的所有文件夹按名称顺序排列,代码也通过 Visual studio 2010 测试。

2、按文件夹名称倒序排列

/// <summary>/// C#按文件夹名称排序(倒序)/// </summary>/// <param name="dirs">待排序文件夹数组</param>private void SortAsFolderName(ref DirectoryInfo[] dirs){Array.Sort(dirs, delegate(DirectoryInfo x, DirectoryInfo y) { returny.Name.CompareTo(x.Name); });}

3、按文件夹创建时间顺序排列

/// <summary>/// C#按文件夹夹创建时间排序(顺序)/// </summary>/// <param name="dirs">待排序文件夹数组</param>private void SortAsFolderCreationTime(ref DirectoryInfo[] dirs){Array.Sort(dirs, delegate(DirectoryInfo x, DirectoryInfo y) { returnx.CreationTime.CompareTo(y.CreationTime); });}

4、按文件夹创建时间倒序排列

/// <summary>/// C#按文件夹创建时间排序(倒序)/// </summary>/// <param name="dirs">待排序文件夹数组</param>private void SortAsFolderCreationTime(ref DirectoryInfo[] dirs){Array.Sort(dirs, delegate(DirectoryInfo x, DirectoryInfo y) { returny.CreationTime.CompareTo(x.CreationTime); });}

如果要按文件或文件夹的最后修改时间排序,方法也是一样的,只需把 CreationTime 改为 LastWriteTime 即可。

C#文件和文件文件夹排序相关推荐

  1. .NET基础-11-ArrayList|Hashtable|File文件操作|Dircetioy文件夹操作|Path路径操作

    集合 ArrayList与Hashtable应为存在拆箱与装箱,所以性能不怎么好,尽量不要使用,而使用泛型集合 可以使用下面的方式输出所消耗的时间 //ArrayList arl = new Arra ...

  2. 计算机中文件怎么移动,文件夹里的文件怎么随意拖动

    Q1:文件夹里的文件无法拖动? Windows 7为了节约自定义视图对未知的记忆功能所消耗的资源,去掉了自定义排序的方式. Q2:电脑文件夹里的文件不能随意拖动是怎么回事呀? 你说的意思是不是想实现任 ...

  3. linux看10g文件,Linux 查看文件和文件夹大小

    当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力. du可以查看文件及文件夹的大小. 两者配 ...

  4. 目录文件和根目录文件夹

    目录文件和根目录文件夹. 相对路径: 相对路径分类 符号 说明 (1)同一级路径: 图像文件位于HTML文件同一级,如<img src="baidu.gif"/> (2 ...

  5. C#遍历得到指定文件夹下的所有文件和子文件夹

    1.遍历指定文件夹下的所有文件 string path = Application.StartupPath + "\\data\\采集数据\\"; DirectoryInfo ro ...

  6. 创建用于存放备份还原文件的网络文件夹(DPM配置管理系列七)

    请在用于存储的服务器中创建备份还原文件的网络共享文件夹,如下图所示: 转载于:https://blog.51cto.com/tingdongwang/895589

  7. linux目录为root所有文件,linux获取文件所有目录/文件夹的例子linux操作系统 -电脑资料...

    下面我给大家整理了两种比较实用的方法,如我们可以使用dirname来获取文件路径或者使用shell命令来获取路径,希望例子对大家有帮助, 方式一:使用" dirname" 去获得( ...

  8. 实体类,bean文件,pojo文件夹,model文件夹都一样

    实体类,bean文件,pojo文件夹,model文件夹都一样,这些都是编写实体类,这是我暂时看到的项目文件 转载于:https://www.cnblogs.com/dianzan/p/11181196 ...

  9. mysql8.0.18ZIP版下载与安装(以及无my-default.ini文件和data文件夹的解决方法)

    mysql8.0.18ZIP版下载与安装(以及无my-default.ini文件和data文件夹的解决方法) 参考文章: (1)mysql8.0.18ZIP版下载与安装(以及无my-default.i ...

  10. python压缩文件夹下的所有文件_python压缩文件夹内所有文件为zip文件的方法

    这里讨论使用Python解压如下五种压缩文件: .gz .tar .tgz .zip .rar 简介gz: 即gzip,通常只能压缩一个文件.与tar结合起来就可以实现先打包,再压缩. tar: li ...

最新文章

  1. Pytorch TensorRT
  2. 各类型土地利用图例_划重点!国土空间总体规划——土地利用
  3. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车超声波避障实验(无舵机)
  4. android module中获取 app_Android组件化架构 - 4. 动态创建
  5. python爬取内容乱码_python爬取html中文乱码
  6. c语言程序设计授课进度安排表,C语言程序设计教学大纲、教学计划进度简表
  7. chrome浏览器再次打开黑屏一段时间
  8. 初学ASP.Net时在论坛收藏收集的一些资料备忘
  9. jupyter notebook 软件安装及使用
  10. 惯性力偶矩公式中j_惯性力偶矩的计算
  11. 【ARM 嵌入式 C 入门及渐进 3 -- GCC __attribute__ 使用】
  12. 结婚吉日怎样挑选?好好把握幸福启程
  13. 针对源代码保密源代码安全管理产品选型建议
  14. 10种招聘数据的采集方法
  15. 备份android分区,安卓手机手动【备份+还原】分区
  16. 接口和抽象类的共性与区别
  17. 轻松在线差异基因/物种分析和可视化
  18. 用Python的networkx绘制精美网络图
  19. redis切换db方法
  20. js 立方 平方怎么写

热门文章

  1. 036.crud准备
  2. java中修改上传图片大小,springMVC MultipartFile 上传图片时修改图片大小
  3. FFmpeg的音频处理详解
  4. 【转1】 OpenWrt Chaos Calmer 15.05使用mwan3单线多拨教程
  5. linux下的密码破解软件
  6. 计算机在职硕士 学什么,计算机在职研究生考什么科目为什么此专业比较强调数学呢...
  7. BZOJ3717 [PA2014] Pakowanie [状态压缩][DP]
  8. 【历史上的今天】9 月 9 日:C 语言之父诞生;阿里巴巴成立
  9. 搭建自己的框架WedeNet(一)
  10. 桌面快捷方式计算机打不开,桌面快捷方式打不开,详细教您桌面快捷方式打不开怎么解决...