DirectInfo.GetFiles返回数组的默认排序示例
发布时间:2022-11-15 14:45:02
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 0;
}
}
}
/// <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
}
}
猜你喜欢
- MultipartResolver和ServletFileUpload冲突如果同时使用了MultipartResolver 和Servlet
- 一、问题Spring2.1.5集成activiti7.1.24时访问要输入用户名和密码。 @Autowired private
- 1.问题由来迷宫实验是取自心理学的一个古典实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒中设置了许多墙,对行进方向形成了多处阻挡
- 冒泡排序法:关键字较小的记录好比气泡逐趟上浮,关键字较大的记录好比石块下沉,每趟有一块最大的石块沉底。算法本质:(最大值是关键点,肯定放到最
- 一、DES加密和解密package com.itjh.javaUtil;import java.io.UnsupportedEncoding
- 一、QQ邮箱打开POP3/SMTP服务上面的服务开启后,会得到一串授权密码在springboot配置中需要用到二、springboot配置I
- 之前进行Web开发的时候使用的是myeclipse,但只用过的人都知道,由于其插件太多,而且有很多插件的功能根本就接触不到。所以导致一旦工程
- 最近在做项目的时候有用到对两个集合中的元素进行对比求其交集的情况,因为涉及到的数据量比较大,所以在进行求两个集合中元素交集的时候,就应该考虑
- 不管eclipse有没有被被时代抛弃,反正是被我抛弃了,因为IDEA是真的好用现在公司的项目基本都是基于maven的多module项目,co
- 在springboot的开发中,有时候我们会有不同的配置,例如日志打印,数据库连接等,开发,测试,生产每个环境可能配置都不一致,还好,spr
- 标准c++中string类函数介绍注意不是CString之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者
- 本文实例为大家分享了Java实现聊天室界面的具体代码,供大家参考,具体内容如下服务器端:package Server; impor
- 目录简介:根据sun的官方文档描述:示例:@SuppressWarnings注解的作用一.@SuppressWarings注解示例1——抑制
- 从 <<Windows Forms 2.0 Programming, 2nd Edition>> &nbs
- Spring Cloud Gateway去掉url前缀主要是增加一个 route,其他配置不变routes: - id: ser
- 本文实例讲述了Java针对ArrayList自定义排序的2种实现方法。分享给大家供大家参考,具体如下:Java中实现对list的自定义排序主
- 前言昨晚想在Android应用中增加一个int映射到String的字典表,使用HashMap实现的时候,Eclipse给出了一个警告,昨晚项
- 承蒙各位厚爱,我们一起每天进步一点点!(鼠标选中空白处查看答案)1、以下不属于构造方法特征的是()正确答案: D构造方法名与类名相同构造方法
- 缘由:今天好友拿着下面的代码,问我为什么 Map.Entry 这个接口没有实现 getKey() 和 getValue() 方法,却可以使用
- 本篇给大家详细讲解了MTKAndroid平台开发流程,大致分为44个步骤,我们把每个步骤的命令详细讲解了下,一起来学习下。1.拷贝代码仓库从