DirectInfo.GetFiles返回數(shù)組的默認排序示例
using System;
using System.Collections;
using System.IO;
namespace ConsoleApplication1
{
/// <summary>
/// 文件排序類
/// </summary>
public class FileSort : IComparer
{
private FileOrder _fileorder;
private FileAsc _fileasc;
/// <summary>
/// 構(gòu)造函數(shù)
/// </summary>
public FileSort()
: this(FileOrder.Name, FileAsc.Asc)
{ }
/// <summary>
/// 構(gòu)造函數(shù)
/// </summary>
/// <param name="fileorder"></param>
public FileSort(FileOrder fileorder)
: this(fileorder, FileAsc.Asc)
{ }
/// <summary>
/// 構(gòu)造函數(shù)
/// </summary>
/// <param name="fileorder"></param>
/// <param name="fileasc"></param>
public FileSort(FileOrder fileorder, FileAsc fileasc)
{
_fileorder = fileorder;
_fileasc = fileasc;
}
/// <summary>
/// 比較函數(shù)
/// </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("參數(shù)不是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>
/// 排序依據(jù)
/// </summary>
public enum FileOrder
{
/// <summary>
/// 文件名
/// </summary>
Name,
/// <summary>
/// 大小
/// </summary>
Length,
/// <summary>
/// 類型
/// </summary>
Extension,
/// <summary>
/// 創(chuàng)建時間
/// </summary>
CreationTime,
/// <summary>
/// 訪問時間
/// </summary>
LastAccessTime,
/// <summary>
/// 修改時間
/// </summary>
LastWriteTime
}
/// <summary>
/// 升序降序
/// </summary>
public enum FileAsc
{
/// <summary>
/// 升序
/// </summary>
Asc,
/// <summary>
/// 降序
/// </summary>
Desc
}
}
相關(guān)文章
C#開發(fā)WinForm之DataGridView開發(fā)詳解
這篇文章主要介紹了C#開發(fā)WinForm之DataGridView開發(fā)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01C#使用Fody實現(xiàn)監(jiān)控方法執(zhí)行時間
這篇文章主要為大家詳細介紹了C#如何使用Fody實現(xiàn)監(jiān)控方法執(zhí)行時間,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解下2023-11-11Winform學生信息管理系統(tǒng)登陸窗體設(shè)計(1)
這篇文章主要為大家詳細介紹了Winform學生信息管理系統(tǒng)登陸窗體設(shè)計思路,感興趣的小伙伴們可以參考一下2016-05-05C# 使用 WebBrowser 實現(xiàn) HTML 轉(zhuǎn)圖片功能的示例代碼
這篇文章主要介紹了C# 如何使用 WebBrowser 實現(xiàn) HTML 轉(zhuǎn)圖片功能,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下2020-07-07