手机
当前位置:查字典教程网 >编程开发 >C#教程 >DirectInfo.GetFiles返回数组的默认排序示例
DirectInfo.GetFiles返回数组的默认排序示例
摘要:复制代码代码如下:usingSystem;usingSystem.Collections;usingSystem.IO;namespaceC...

复制代码 代码如下:

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

}

}

【DirectInfo.GetFiles返回数组的默认排序示例】相关文章:

c# 通过经纬度查询 具体的地址和区域名称

C#中 paint()与Onpaint()的区别

用C#写的ADSL拨号程序的代码示例

c#(Socket)同步套接字代码示例

.NET(C#):Emit创建异常处理的方法

c#二进制逆序方法详解

浅析C# 基础语法的使用

c#中返回文章发表的时间差的示例

WinForm下 TextBox只允许输入数字的小例子

c#进度条 progressBar 使用方法的小例子

精品推荐
分类导航