zoukankan      html  css  js  c++  java
  • C#文件和文件文件夹按时间、名称排序-顺序与倒序

    对于文件和文件夹有多种排序方式,常用的就是按创建或修改时间、按文件名排序。在 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 即可。

  • 相关阅读:
    将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据
    DataTable和List集合互转
    Sql2008中使用DataTable作为存储过程的参数
    jquery实现很简单的DIV拖动
    //禁用右键、文本选择功能、复制按键
    jquery---点击弹出层
    读取xml字符串
    mogodb安装,复制,副本集
    windows服务器安装zabbix客户端
    系统初始化脚本(Centos7.2)
  • 原文地址:https://www.cnblogs.com/soundcode/p/4885723.html
Copyright © 2011-2022 走看看