对于文件和文件夹有多种排序方式,常用的就是按创建或修改时间、按文件名排序。在 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. php如何将读取到的mysql内容按发布的日期分割显示_php如何读取文件夹目录里的文件并按照日期,大小,名称排序...

    最近用到的php读取文件夹目录里的文件,并按照日期,大小,名称排序,所以写了一个方法,备用. function dir_size($dir,$url){ $dh = @opendir($dir);   ...

  2. android让文件按顺序列表,Java/Android 获取文件夹的文件列表(file.listFiles())并按名称排序,中文优先...

    排序规则 由于是中国人,习惯性看中文文件夹放前面比较顺眼,因此在别人博客(https://blog.csdn.net/da_caoyuan/article/details/56664673)的基础上, ...

  3. python文件名排序按windowsp_在SQLServer中如果实现Windows文件夹中按名称排序?算法是什么怎么Order By...

    展开全部 SQL SERVER的排序规则平时使用不是很多,也许不少初学者还比较陌生,但有一个错误大家应是经常碰到e5a48de588b662616964757a686964616f3133326463 ...

  4. 【java】java sftp访问文件夹,java smb访问共享文件夹 按时间过滤查找文件 集成springboot

    文章目录 java的sftp传输 sftp按时间过滤文件列表 sftp注意事项 java smb1.0传输 smb1.0按时间过滤文件列表 smb注意事项 java smb2.0/3.0传输(smbj ...

  5. outlook 脱机文件夹_在Outlook 2007中使用搜索文件夹节省时间

    outlook 脱机文件夹 This article was written by MysticGeek, a tech blogger at the How-To Geek Blogs. 本文由Ho ...

  6. 扫描到服务器的文件在哪个文件夹,云服务器的文件在哪个文件夹

    云服务器的文件在哪个文件夹 内容精选 换一换 登录Windows操作系统的弹性云服务器时,需使用密码方式登录.因此,用户需先根据创建弹性云服务器时使用的密钥文件,获取该弹性云服务器初始安装时系统生成的 ...

  7. linux 删除o开头的文件,linux实现除了某个文件或某个文件夹以外的全部删除

    比如一个目录下有1,2,3,4,5这五个文件,现在我需要删除除了2以外的所有文件,那么我可以使用 find . ! -name 2 -exec rm -f {} \; 当然你还可以配合着 -maxde ...

  8. python跳转和创建目录,Python - 创建目录,切换目录,创建文件,复制文件,移动文件 ,删除文件夹及文件...

    # -*- coding: utf-8 -*- """ Created on Mon Jan  9 00:35:43 2017 @author-Weixin: 95355 ...

  9. linux键盘设置的文件在哪个文件夹,「正点原子Linux连载」第十五章按键输入试验...

    原标题:「正点原子Linux连载」第十五章按键输入试验 第十五章按键输入试验 前面几章试验都是讲解如何使用I.MX6U的GPIO输出控制功能,I.MX6U的IO不仅能作为输出,而且也可以作为输入.I. ...

最新文章

  1. Cacti脚本及模板
  2. java 中的几种 通用方法“
  3. Python 类的定义、继承及使用对象
  4. 机器学习经典书籍小结
  5. vi/vim基本使用方法
  6. Python练习 | Python3中的格式化输入输出之print函数
  7. Teradata首席分析官Bill Franks:数据分析变革犹如一场工业革命
  8. 这个帖子要收藏,以后用得着--python 实时获取子进程输出
  9. [SCM]源码管理 - perforce的集中授权+分布式团队+负载均衡+可扩展性+高可用性+灾难恢复...
  10. Android之升级OkHttp编译提示错误如下Using ‘body(): ResponseBody?’ is an error. moved to val
  11. 百万个小油馕跨越3000公里来支援!西安加油!
  12. Idea部署web项目 与 eclipse 的不同之处
  13. 弹窗修改数据 临时解决方法 + ajax
  14. 【翻译】Pro.Silverlight.5.in.CSharp.4th.Edition - 目录
  15. Redis由分布式锁造成的重大事故
  16. [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  17. 医生- 患者 - 图标
  18. oracle linux 下载地址
  19. 民族传统体育类毕业论文文献都有哪些?
  20. 洛谷P5706 【深基2.例8】再分肥宅水__C++描述

热门文章

  1. C语言DP备忘计算指数N的斐波那契级数的算法(附完整源码)
  2. C++数据结构之链式结构
  3. QT的QStyle类的使用
  4. C++构造函数的分类及调用
  5. 本田da屏怎么进wince系统_东风本田LIFE“来福酱”上市
  6. 「Self-driving: Perception」多传感器融合之Camera、Lidar 雷达融合
  7. 使用Spring+Junit4.4进行测试
  8. java调用wcf控件的两种交互
  9. cxf 本地wsdl_cxf使用wsdl文件生成代码
  10. linux uvc协议_linux使用UVC采集数据