DirectInfo.GetFiles返回数组的默认排序
NTFS和CDFS下,是按照字母顺序,而FAT下,按照文件创建时间顺序
using System;
using System.Collections;
using System.IO; namespace ConsoleApplication1
{
/// <summary>
/// 文件排序类
/// </summary>
public class FileSort : IComparer
{
private FileOrder _fileorder;
private FileAsc _fileasc; /// <summary>
/// 构造函数
/// </summary>
public FileSort()
: this(FileOrder.Name, FileAsc.Asc)
{ } /// <summary>
/// 构造函数
/// </summary>
/// <param name="fileorder"></param>
public FileSort(FileOrder fileorder)
: this(fileorder, FileAsc.Asc)
{ } /// <summary>
/// 构造函数
/// </summary>
/// <param name="fileorder"></param>
/// <param name="fileasc"></param>
public FileSort(FileOrder fileorder, FileAsc fileasc)
{
_fileorder = fileorder;
_fileasc = fileasc;
} /// <summary>
/// 比较函数
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <returns></returns>
public int Compare(object x, object y)
{
FileInfo file1 = x as FileInfo;
FileInfo file2 = y as FileInfo;
FileInfo file3; if (file1 == null || file2 == null)
throw new ArgumentException("参数不是FileInfo类实例."); if (_fileasc == FileAsc.Desc)
{
file3 = file1;
file1 = file2;
file2 = file3;
} switch (_fileorder)
{
case FileOrder.Name:
return file1.Name.CompareTo(file2.Name);
case FileOrder.Length:
return file1.Length.CompareTo(file2.Length);
case FileOrder.Extension:
return file1.Extension.CompareTo(file2.Extension);
case FileOrder.CreationTime:
return file1.CreationTime.CompareTo(file2.CreationTime);
case FileOrder.LastAccessTime:
return file1.LastAccessTime.CompareTo(file2.LastAccessTime);
case FileOrder.LastWriteTime:
return file1.LastWriteTime.CompareTo(file2.LastWriteTime);
default:
return ;
}
}
} /// <summary>
/// 排序依据
/// </summary>
public enum FileOrder
{
/// <summary>
/// 文件名
/// </summary>
Name,
/// <summary>
/// 大小
/// </summary>
Length,
/// <summary>
/// 类型
/// </summary>
Extension,
/// <summary>
/// 创建时间
/// </summary>
CreationTime,
/// <summary>
/// 访问时间
/// </summary>
LastAccessTime,
/// <summary>
/// 修改时间
/// </summary>
LastWriteTime
} /// <summary>
/// 升序降序
/// </summary>
public enum FileAsc
{
/// <summary>
/// 升序
/// </summary>
Asc,
/// <summary>
/// 降序
/// </summary>
Desc
}
}
using System;
using System.IO; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo dirInfo = new DirectoryInfo(@"F:\abc");
FileInfo[] lstFile = dirInfo.GetFiles();
Array.Sort(lstFile, new FileSort(FileOrder.LastWriteTime)); //按修改日期升序排列
foreach (FileInfo file in lstFile)
Console.WriteLine(file.Name); Console.Read(); }
}
}
DirectInfo.GetFiles返回数组的默认排序的更多相关文章
- 数组的sort()排序
1.sort() 方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字符串Unicode码点,也就是你不传参进去的话,默认按字符串Unicode码点来排序,而不是按数字大小来排序 2.arr ...
- Objective-C之NSArray(数组)默认排序与自定义排序
在讲OC中数组的排序之前我先上一段代码,它是简单数组排序的一种方法(也就是元素是字符串或者数据的数组,因为后面要讲元素为类的数组排序) 代码1: NSArray *sortArr4 = [sortAr ...
- Javascript 迭代法实现数组多条件排序
多条件排序可能有很多种思路,效率也各不相同,我的方法可能只适合自己用,毕竟目的是为了实现功能,所以采用了最笨的方法,不过效果还是很理想的,经过多次测试,6列1000行数据,平均排序时间大约是:28ms ...
- 数组-去重、排序方法、json排序
1.数组去重 /*方法一: 1,'1' 会被认为是相同的; 所有hash对象,如:{x;1},{y:1}会被认为是相同的 //10ms */ Array.prototype.unique=functi ...
- Woocommerce 分类下的产品如何使用ID号来作为默认排序字段
在给一个客户开发网店系统时使用了WordPress系统的Woocommerce插件 WordPress版本:3.8 Woocommerce版本:2.0.20 如果没有指定排序规则(指定的字段),则Wo ...
- 让ar执行queryall和queryrow方法返回数组
让ar执行queryall和queryrow方法返回数组 <?phpnamespace common\components;use \CActiveRecord;use \Yii;use \CD ...
- php数组的各种排序
转自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/11/2207494.html 如果你已经使用了一段时间PHP的话,那么,你应 ...
- Java比较器对数组,集合排序一
数组排序非常简单,有前辈们的各种排序算法,再加上Java中强大的数组辅助类Arrays与集合辅助类Collections,使得排序变得非常简单,如果说结合比较器Comparator接口和Collato ...
- cocos2d JS 中的数组拼接与排序
var arrA = [];//创建三个局部变量的新数组 var arrB = []; var arrC = []; var newCards = this.MyMahjong;//创建一个新的局部变 ...
随机推荐
- Cling项目demo实现Android+DLNA实现
dlna多屏互动技术在Android和ios上面应用很广,所以自己为了学习,就官方提供的远吗进行了学习. http://4thline.org/projects/cling 由于是一个maven构建的 ...
- Spring加载XML配置文件
原创链接:http://www.cnblogs.com/yanqin/p/5282929.html(允许转载,但请注明原创链接) BeanFactory加载单个文件 当使用beanfactory去获取 ...
- Flask 目录
flask入门 flask 源码剖析 Flask session Flask form
- HDU 2512 一卡通大冒险(第二类斯特林数+贝尔数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2512 题目大意:因为长期钻研算法, 无暇顾及个人问题,BUAA ACM/ICPC 训练小组的帅哥们大部 ...
- LOJ 10155 - 「一本通 5.2 例 3」数字转换
前言 从现在开始,这个博客要写一些题解了.起初,开这个博客只是好玩一样,没事就写写CSS.JS,然后把博客前端搞成了现在这个样子.以前博客只是偶尔记录一些东西,刷题也从来不记录,最近受一些学长的影响, ...
- Oracle JDK vs OpenJDK
OpenJDK是Sun在2006年末把Java开源而形成的项目,这里的“开源”是通常意义上的源码开放形式,即源码是可被复用的,例如IcedTea.UltraViolet都是从OpenJDK源码衍生出的 ...
- 195 Tenth Line
Given a text file file.txt, print just the 10th line of the file. Example: Assume that file.txt has ...
- 为K8S集群建立只读权限帐号
参考URL: https://www.jianshu.com/p/a1a0d64f1245 https://mritd.me/2018/03/20/use-rbac-to-control-kubect ...
- ngResource和REST介绍
ngResource和REST介绍 一.RESTful介绍 RESTful维基百科 REST(表征性状态传输,Representational State Transfer)是Roy Fielding ...
- Linux 正则
一.引用自:https://www.cnblogs.com/chensiqiqi/p/6285060.html 二.grep示例 grep -i 忽略大小写 grep -w 精准匹配 grep - ...