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
}
}


猜你喜欢
- 在项目中为了友好化,对于错误页面,我们常常会使用自定义的页面。SSM框架组合时代,我们通常通过拦截或者在web.xml中设置对于错误码的错误
- 事件缘由:一个主项目“图说美物”,另外一个子功能是品牌商的入驻功能,是跟主项目分开的项目,为了共享登录的用户信息,而实现session共享,
- activity_list.xml文件代码如下:<?xml version="1.0" encoding=&quo
- 首先我们来理解下 * 的机制。Android的事件处理机制有两种:监听和回调。A基于监听的事件处理主要涉及三类对象:EventSource(
- 本文实例讲述了java读取properties文件的方法。分享给大家供大家参考。具体实现方法如下:package com.test.demo
- TableView,算是一个很重要的控件,几乎随处可见,而且功能强大,数据展示效果良好。所以,在JavaFX中,我们自然而然也应该学习一下T
- 程序绑定的概念:绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后
- 写作原因:跨进程通信的实现和理解是Android进阶中重要的一环。下面博主分享IPC一些相关知识、操作及自己在学习IPC过程中的一些理解。这
- 代码如下: package swt_jface.demo9; import org.eclipse.swt.SWT; import org.
- 本文实例讲述了java自动生成ID号的方法。分享给大家供大家参考。具体实现方法如下:import java.util.UUID;public
- 经过一番的探索,终于搞清楚关键字async/await 在.net4.5之后可用的巧妙之处,在这里记录一下也与大家分享一下个人的心得体会as
- resultType和resultMap只能有一个成立,resultType是直接表示返回类型的,而resultMap则是对外部Result
- 先来看问题纠结了几个小时终于找到了问题所在,因为shiro的realm属于Filter,简单说就是初始化realm时,spring还未加载相
- 前言今天起床,拿起手机开机第一时间当然是打开微信了,左右滑动Viewpager,发现它使用了一种叫惰性加载,或者说懒加载(lazy-load
- hystrix参数使用方法通过注解@HystrixCommand的commandProperties去配置,如下就是hystrix命令超时时
- 前言去年7月时,在Github发布了一个开源的Banner库,虽然Star不多,但还是有少部分人使用。Banner效果:Github链接地址
- springboot static调用service为null@PostConstruct注解好多人以为是Spring提供的。其实是Java
- 一、什么是iText?在企业的信息系统中,报表处理一直占比较重要的作用,iText是一种生成PDF报表的Java组件。通过在服务器端使用Js
- 之前已经为大家介绍过利用Java实现带GUI的气泡诗词特效,本文将为大家介绍另一种方法同样也可以实现气泡诗词的效果。下面是示例代码impor
- 一.安装在 IDEA(2019)的 setting 的 Plugins 的 Marketplace 中搜索 leetcode,即可以找到该插