DirectInfo.GetFiles返回数组的默认排序
来源:互联网 发布:mac os iso下载 编辑:程序博客网 时间:2024/05/22 14:26
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 LastWriteTime112 }113 114 /// <summary>115 /// 升序降序116 /// </summary>117 public enum FileAsc118 {119 /// <summary>120 /// 升序121 /// </summary>122 Asc,123 /// <summary>124 /// 降序125 /// </summary>126 Desc127 }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 }
0 0
- DirectInfo.GetFiles返回数组的默认排序
- DirectInfo.GetFiles返回数组的默认排序
- GetFiles GetDirectories 获取文件名,目录名排序
- 数组排序,并返回排序后的数组对应原数组的下标(c语言)
- C#—GetFiles()获得的文件列表与在本机文件夹上按名称的排序一致
- Directory.GetFiles 方法 中使用的误区
- c 返回排序后的一维数组
- GetFiles()后对文件按指定方式排序
- 如何让SQL语句不执行默认排序,而是按照in语句的顺序返回结果
- 一个返回json对象的问题 key 为数字时 会默认从小到大进行排序
- mysql的默认排序
- js对数组进行排序,删除,添加,返回新的数组长度内容
- C# Directory.GetFiles()获取多个类型格式的文件
- C# Directory.GetFiles()获取多个类型格式的文件
- C# Directory.GetFiles()获取多个类型格式的文件
- sql语句 不让得出的结果默认排序,让其按照in语句的顺序返回结果
- 给定一个没有重复的已排序整数数组,返回其范围的摘要。
- 数据库select的默认排序
- 【C#】【WPF】如何读写app.config文件
- Java HttpServer实现交互
- OJ---- 201301 JAVA 题目2-3级(走棋盘)
- 二维码的生成
- site网站安全状态为危险,提示被篡改检测为被篡改怎么办?
- DirectInfo.GetFiles返回数组的默认排序
- mybatis动态sql更新语法
- JavaEE版Eclipse搭建SSH框架详解
- 走进绚烂多彩的属性动画-Property Animation(上篇)
- Game Study I
- java反射机制及在Abdroid的应用
- C++ Builder 代码自动格式化
- Spring事务
- Retrofit 2.0非常简单的入门(翻译官方文档)