欢迎访问!
您的支持是我们不断前行的动力!

C#文件和文件文件夹按时间、名称排序-顺序与倒序

对于文件和文件夹有多种排序方式,常用的就是按创建或修改时间、按文件名排序。在 C# 中,按时间和文件名排序都十分简单,用数组提供的排序方法 Array.Sort() 一行代码就可以搞定,当然也可以用常用的排序方法,如快速排序、冒泡排序等。

文件排序的方法也适用于文件夹,只是传递的变量不同。为了便于使用,将分别列出C#文件排序和文件夹排序四种常用方法,分别为:按名称顺序与倒序排序、按时间顺序与倒序。

一、C#文件排序

1、按名称顺序排列

/// <summary>
/// C#按文件名排序(顺序)
/// </summary>
/// <param name="arrFi">待排序数组</param>
private void SortAsFileName(ref FileInfo[] arrFi)
{
  Array.Sort(arrFi, delegate(FileInfo x, FileInfo y) 
   {return x.Name.CompareTo(y.Name);});
}

调用方法:

private void SortFiles()
{
  string filePath = "E:\\";
  DirectoryInfo di = new DirectoryInfo(filePath);
  FileInfo[] arrFi = di.GetFiles("*.*");
  SortAsFileName(ref arrFi);
  for (int i = 0; i < arrFi.Length; i++)
    Response.Write(arrFi[i].Name + ":<br />");
}

上面的代码是对 E 盘根目录下的所有文件排序,代码测试通过,可直接调用。

2、按名称倒序排列

/// <summary>
/// C#按文件名排序(倒序)
/// </summary>
/// <param name="arrFi">待排序数组</param>
private void SortAsFileName(ref FileInfo[] arrFi)
{
  Array.Sort(arrFi, delegate(FileInfo x, FileInfo y) 
   {return y.Name.CompareTo(x.Name);});
}

调用方法跟顺序排列一样,就不举例了。

3、按创建时间顺序排列

/// <summary>
/// C#按创建时间排序(顺序)
/// </summary>
/// <param name="arrFi">待排序数组</param>
private void SortAsFileCreationTime(ref FileInfo[] arrFi)
{
  Array.Sort(arrFi, delegate(FileInfo x, FileInfo y) 
   {return x.CreationTime.CompareTo(y.CreationTime);});
}

调用方法与上同。

4、按创建时间倒序排列

/// <summary>
/// C#按创建时间排序(倒序)
/// </summary>
/// <param name="arrFi">待排序数组</param>
private void SortAsFileCreationTime(ref FileInfo[] arrFi)
{
  Array.Sort(arrFi, delegate(FileInfo x, FileInfo y) 
   {return y.CreationTime.CompareTo(x.CreationTime);});
}

调用方法与上同。

二、C#文件夹排序

1、按文件夹名称顺序排列

/// <summary>
/// C#按文件夹名称排序(顺序)
/// </summary>
/// <param name="dirs">待排序文件夹数组</param>
private void SortAsFolderName(ref DirectoryInfo[] dirs)
{
  Array.Sort(dirs, delegate(DirectoryInfo x, DirectoryInfo y) 
   {return x.Name.CompareTo(y.Name);});
}

调用方法:

private void FolderSort()
{
  string filePath = "E:\\";
  DirectoryInfo di = new DirectoryInfo(filePath);
  DirectoryInfo[] arrDir = di.GetDirectories();
  SortAsFolderName(ref arrDir);
  for (int i = 0; i < arrDir.Length; i++)
    Response.Write(arrDir[i].Name + ":<br />");
}

上述代码是对 E 盘根目录下的所有文件夹按名称顺序排列,代码也通过测试。

2、按文件夹名称倒序排列

/// <summary>
/// C#按文件夹名称排序(倒序)
/// </summary>
/// <param name="dirs">待排序文件夹数组</param>
private void SortAsFolderName(ref DirectoryInfo[] dirs)
{
  Array.Sort(dirs, delegate(DirectoryInfo x, DirectoryInfo y) 
   {return y.Name.CompareTo(x.Name);});
}

3、按文件夹创建时间顺序排列

/// <summary>
/// C#按文件夹夹创建时间排序(顺序)
/// </summary>
/// <param name="dirs">待排序文件夹数组</param>
private void SortAsFolderCreationTime(ref DirectoryInfo[] dirs)
{
  Array.Sort(dirs, delegate(DirectoryInfo x, DirectoryInfo y) 
   {return x.CreationTime.CompareTo(y.CreationTime);});
}

4、按文件夹创建时间倒序排列

/// <summary>
/// C#按文件夹创建时间排序(倒序)
/// </summary>
/// <param name="dirs">待排序文件夹数组</param>
private void SortAsFolderCreationTime(ref DirectoryInfo[] dirs)
{
  Array.Sort(dirs, delegate(DirectoryInfo x, DirectoryInfo y) 
   {return y.CreationTime.CompareTo(x.CreationTime);});
}

如果要按文件或文件夹的最后修改时间排序,方法也是一样的,只需把 CreationTime 改为 LastWriteTime 即可。

赞(1) 打赏
转载请注明出处,未注明出处不得转载,蜘蛛侠 » C#文件和文件文件夹按时间、名称排序-顺序与倒序
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

蜘蛛侠,您身边的爬虫专家!

觉得文章有用就打赏一下文章作者吧

支付宝扫一扫打赏

微信扫一扫打赏