博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#文件和文件文件夹按时间、名称排序-顺序与倒序
阅读量:6714 次
发布时间:2019-06-25

本文共 3193 字,大约阅读时间需要 10 分钟。

对于文件和文件夹有多种排序方式,常用的就是按创建或修改时间、按文件名排序。在 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) { returnx.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) { returny.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) { returnx.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) { returny.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) { returnx.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 盘根目录下的所有文件夹按名称顺序排列,代码也通过 Visual studio 2010 测试。

 

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

  /// <summary>

/// C#按文件夹名称排序(倒序)
/// </summary>
/// <param name="dirs">待排序文件夹数组</param>
private void SortAsFolderName(ref DirectoryInfo[] dirs)
{
Array.Sort(dirs, delegate(DirectoryInfo x, DirectoryInfo y) { returny.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) { returnx.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) { returny.CreationTime.CompareTo(x.CreationTime); });
}

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

分类: 
本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/4885723.html
,如需转载请自行联系原作者
你可能感兴趣的文章
React 路由状态管理总结
查看>>
禅道 11.3 版本发布,主要完善细节,修复 bug
查看>>
无人机新用途,可精确识别危险海洋生物并向游泳者发出预警
查看>>
(一) virtualenv虚拟环境安装
查看>>
Android官方开发文档Training系列课程中文版:分享简单数据之从其它APP接收简单数据...
查看>>
OpenSSL将于9月22日发布多个漏洞补丁
查看>>
大数据助推新型智库建设
查看>>
新加坡欲重组通信和媒体管制机构
查看>>
《CCNP ROUTE 300-101学习指南》——2.2节构建EIGRP拓扑表
查看>>
《为自己工作——世界顶级设计师成功法则》目录—导读
查看>>
Libreboot 项目向开源社区示好和致歉
查看>>
《CMYK 2.0——设计师色彩管理手册》—第1章1.3节副作用
查看>>
java.util.concurrent.locks.LockSupport
查看>>
红帽加入 Node.js 基金会白金会员
查看>>
《OpenGL编程指南》一2.7 独立的着色器对象
查看>>
Ionic 3.4.2 发布,漂亮的 HTML5 移动应用框架
查看>>
Linux Kernel 4.9-rc8,4.9 分支最后一个候选版
查看>>
想开发 Android 分支?没门!
查看>>
《Web异步与实时交互——iframe AJAX WebSocket开发实战》—— 2.2 相关关键技术及工作原理...
查看>>
《Nmap渗透测试指南》—第1章1.5节Mac OS安
查看>>