zoukankan      html  css  js  c++  java
  • DirectInfo.GetFiles返回数组的默认排序

    NTFS和CDFS下,是按照字母顺序,而FAT下,按照文件创建时间顺序

      1 using System;
      2 using System.Collections;
      3 using System.IO;
      4 
      5 namespace ConsoleApplication1
      6 {
      7     /// <summary>
      8     /// 文件排序类
      9     /// </summary>
     10     public class FileSort : IComparer
     11     {
     12         private FileOrder _fileorder;
     13         private FileAsc _fileasc;
     14 
     15         /// <summary>
     16         /// 构造函数
     17         /// </summary>
     18         public FileSort()
     19             : this(FileOrder.Name, FileAsc.Asc)
     20         { }
     21 
     22         /// <summary>
     23         /// 构造函数
     24         /// </summary>
     25         /// <param name="fileorder"></param>
     26         public FileSort(FileOrder fileorder)
     27             : this(fileorder, FileAsc.Asc)
     28         { }
     29 
     30         /// <summary>
     31         /// 构造函数
     32         /// </summary>
     33         /// <param name="fileorder"></param>
     34         /// <param name="fileasc"></param>
     35         public FileSort(FileOrder fileorder, FileAsc fileasc)
     36         {
     37             _fileorder = fileorder;
     38             _fileasc = fileasc;
     39         }
     40 
     41         /// <summary>
     42         /// 比较函数
     43         /// </summary>
     44         /// <param name="x"></param>
     45         /// <param name="y"></param>
     46         /// <returns></returns>
     47         public int Compare(object x, object y)
     48         {
     49             FileInfo file1 = x as FileInfo;
     50             FileInfo file2 = y as FileInfo;
     51             FileInfo file3;
     52 
     53             if (file1 == null || file2 == null)
     54                 throw new ArgumentException("参数不是FileInfo类实例.");
     55 
     56             if (_fileasc == FileAsc.Desc)
     57             {
     58                 file3 = file1;
     59                 file1 = file2;
     60                 file2 = file3;
     61             }
     62 
     63             switch (_fileorder)
     64             {
     65                 case FileOrder.Name:
     66                     return file1.Name.CompareTo(file2.Name);
     67                 case FileOrder.Length:
     68                     return file1.Length.CompareTo(file2.Length);
     69                 case FileOrder.Extension:
     70                     return file1.Extension.CompareTo(file2.Extension);
     71                 case FileOrder.CreationTime:
     72                     return file1.CreationTime.CompareTo(file2.CreationTime);
     73                 case FileOrder.LastAccessTime:
     74                     return file1.LastAccessTime.CompareTo(file2.LastAccessTime);
     75                 case FileOrder.LastWriteTime:
     76                     return file1.LastWriteTime.CompareTo(file2.LastWriteTime);
     77                 default:
     78                     return 0;
     79             }
     80         }
     81     }
     82 
     83     /// <summary>
     84     /// 排序依据
     85     /// </summary>
     86     public enum FileOrder
     87     {
     88         /// <summary>
     89         /// 文件名
     90         /// </summary>
     91         Name,
     92         /// <summary>
     93         /// 大小
     94         /// </summary>
     95         Length,
     96         /// <summary>
     97         /// 类型
     98         /// </summary>
     99         Extension,
    100         /// <summary>
    101         /// 创建时间
    102         /// </summary>
    103         CreationTime,
    104         /// <summary>
    105         /// 访问时间
    106         /// </summary>
    107         LastAccessTime,
    108         /// <summary>
    109         /// 修改时间
    110         /// </summary>
    111         LastWriteTime
    112     }
    113 
    114     /// <summary>
    115     /// 升序降序
    116     /// </summary>
    117     public enum FileAsc
    118     {
    119         /// <summary>
    120         /// 升序
    121         /// </summary>
    122         Asc,
    123         /// <summary>
    124         /// 降序
    125         /// </summary>
    126         Desc
    127     }
    128 }
     1 using System;
     2 using System.IO;
     3 
     4 namespace ConsoleApplication1
     5 {
     6     class Program
     7     {
     8         static void Main(string[] args)
     9         {
    10             DirectoryInfo dirInfo = new DirectoryInfo(@"F:abc");
    11             FileInfo[] lstFile = dirInfo.GetFiles();
    12             Array.Sort(lstFile, new FileSort(FileOrder.LastWriteTime)); //按修改日期升序排列
    13             foreach (FileInfo file in lstFile)
    14                 Console.WriteLine(file.Name);
    15 
    16             Console.Read();
    17 
    18         }
    19     }    
    20 }
  • 相关阅读:
    用 ArcMap 发布 ArcGIS Server FeatureServer Feature Access 服务 PostgreSQL 版本
    ArcMap 发布 ArcGIS Server OGC(WMSServer,MapServer)服务
    ArcScene 创建三维模型数据
    ArcMap 导入自定义样式Symbols
    ArcMap 导入 CGCS2000 线段数据
    ArcMap 导入 CGCS2000 点坐标数据
    ArcGis Server manager 忘记用户名和密码
    The view or its master was not found or no view engine supports the searched locations
    python小记(3)操作文件
    pytest(2) pytest与unittest的区别
  • 原文地址:https://www.cnblogs.com/zgqys1980/p/3259640.html
Copyright © 2011-2022 走看看