对于文件和文件夹有多种排序方式,常用的就是按创建或修改时间、按文件名排序。在 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. 数据文件、日志文件、归档文件、控制文件、参数文件及RMAN备份数据库信息查询

    一.查看数据库信息:=====================1.数据文件 SQL> SELECT FILE#,STATUS,ENABLED,NAME FROM V$DATAFILE; FILE ...

  2. 目录和文件 按创建时间排序du -h --time --max-depth=1 . |sort -r -t $'\t' -k 2 Linux查看文件夹大小,并按文件夹创建时间排序

    目录和文件 按创建时间排序 # du -h --time --max-depth=1 . |sort -r -t $'\t' -k 230M 2020-04-01 14:54 .28K 2020-04 ...

  3. scp 对拷文件夹 和 文件夹下的所有文件 对拷文件并重命名

    对拷文件夹 (包括文件夹本身) scp -r   /home/wwwroot/www/charts/util root@192.168.1.65:/home/wwwroot/limesurvey_ba ...

  4. s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译

    时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...

  5. C# 操作文件类,文件夹存在判断,创建,文件内容读写。

    此篇文档是老早就放到草稿箱中了,断断续续编辑了几次.结合自己经常用到的对于文件的操作,结合msdn做此文. 1.File 类 --转自msdn 常用方法: 名称 说明 AppendAllLines(S ...

  6. C# 选择文件、选择文件夹、打开文件(或者文件夹) 路径中获取文件全路径、目录、扩展名、文件名称 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名!!

    https://www.cnblogs.com/zhlziliaoku/p/5241097.html 1.选择文件用OpenDialog OpenFileDialog dialog = new Ope ...

  7. Java中递归的优缺点,Java写一个递归遍历目录下面的所有文件包括子文件夹里边的文件。

    题目: 遍历出aaa文件夹下的文件 首先分析思路: 1.首先判断这个文件夹是否为文件,通过isFile()函数可以判断是否为文件. 2.然后通过isDirectory判断是否为目录. 3.如果是目录就 ...

  8. Win10资源管理器中的库文件夹按照修改日期排序

    win7之后添加的库十分的好用,可以将下载,音乐,文档设置在我的电脑(win10叫此电脑)首页,快速进入. 我对文件夹设置了按照时间排序,这样进去就可以直接看到最近下载了什么文件.但是win10用时间 ...

  9. 文件元数据、文件夹操作(day08)

    一.获取文件的元数据(meta data) 通过read write可以对文件的内容进行读写. 但是今天我们要操作的是文件的元数据(文件的属性信息) day08$ls -l hello -rw-rw- ...

随机推荐

  1. 【读书笔记】iOS网络-HTTP-请求内容

    一,GET方法. 从服务器获取一段内容,用HTTP术语来说就是实体.GET请求通常不包含请求体,不过也是可以包含的.有些网络缓存设施只会缓存GET响应.GET请求通常不会导致服务器端的数据变化. 二, ...

  2. C语言-09-文件操作

    文件类型 文本文件(ASCII) 简单的文本文件,可用任何文字处理程序阅读 二进制文件 包含 在ASCII及扩展ASCII字符中编写的数据或程序指令 的文件,通常图形文件及文字处理程序等计算机程序都属 ...

  3. IOS之UI--小实例项目--添加商品和商品名(纯代码终结版)

    前言:这个小实例项目是完完全全以MJ视频传授的优化方案一步一个思路从零开始敲出代码的,而且每一步都有思路,都有逻辑所以然.敲代码讲究思路,我个人不建议记忆太多东西,反正我记性很差的. 小贴士:文章末尾 ...

  4. android 进程/线程管理(四)----消息机制的思考(自定义消息机制)

    关于android消息机制 已经写了3篇文章了,想要结束这个系列,总觉得少了点什么? 于是我就在想,android为什么要这个设计消息机制,使用消息机制是现在操作系统基本都会有的特点. 可是andro ...

  5. [QualityCenter]设置工作流脚本-新建缺陷时字段自动生成

    需求:新建缺陷时,自动生成缺陷状态.检查者和检查日期的值. 在脚本编辑器找到Defects_Bug_New函数,然后填写以下代码: Sub Defects_Bug_New    On Error Re ...

  6. Spring web.xml配置文件解析

    概要解析

  7. Effective Java 78 Consider serialization proxies instead of serialized instances

    Serialization proxy pattern private static nested class (has a single constructor whose parameter ty ...

  8. C# Socket和TCP连接的区别

    网络通信七层参考模型介绍: 物理层: HUB,网线 链路层: MAC,ARP,交换机 网络层:IP,ICMP,IGMP,路由器 传输层: TCP,UDP 会话层: HTTP,SMTP,FTP,POP3 ...

  9. linux编译安装MySQL

    最近就想搞搞hadoop,然后装个MySQL,测试一下那个sqoop. MySQL这种东西,既然是开放源码的,那就源码安装吧. 下面是我的测试环境说明: VMware10+Ubuntu14.04 Ky ...

  10. Hadoop系列之(一):Hadoop单机部署

    1. Hadoop介绍 Hadoop是一个能够对海量数据进行分布式处理的系统架构. Hadoop框架的核心是:HDFS和MapReduce. HDFS分布式文件系统为海量的数据提供了存储, MapRe ...