高手请进:请教asp.net2.0用Directory.GetFiles取文件列表,如何按时间排序,如果过滤多个扩展名?

iron0 2006-12-27 01:01:55
请教asp.net2.0用Directory.GetFiles取文件列表,如何按时间排序,如果过滤多个扩展名?

谢谢
...全文
363 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
一直学习 2006-12-27
  • 打赏
  • 举报
回复
UP
iron0 2006-12-27
  • 打赏
  • 举报
回复
string[] files=Directory.GetFiles(dirpath);
Array.Sort(files,new DateTimeFileComparer());
public class DateTimeFileComparer : System.Collections.IComparer
{
public int Compare(object x, object y)
{
TimeSpan ts = System.IO.File.GetLastWriteTime((string)x) - System.IO.File.GetLastWriteTime((string)y);
if (ts.TotalMilliseconds == 0)
return 0;
if (ts.TotalMilliseconds > 0)
return -1;
return 1;
}
}

这样完全可以~按时间倒序排列
iron0 2006-12-27
  • 打赏
  • 举报
回复
非常感谢~
但asp.net2.0中好象不能这么做~

因为GetFile()返回string[]类型
cangwu_lee 2006-12-27
  • 打赏
  • 举报
回复

IComparer


using System;
using System.Collections;
using System.IO;

class SortFile : IComparer
{
int IComparer.Compare(object a, object b)
{
FileInfo fa = (FileInfo)a;
FileInfo fb = (FileInfo)b;

//order by LastWriteTime DESC
if(fa.LastWriteTime < fb.LastWriteTime)
return 1;
if (fa.LastWriteTime > fb.LastWriteTime)
return -1;

return 0;
}

public static void Main()
{
string sDir = @"C:\temp";
DirectoryInfo di = new DirectoryInfo(sDir);
FileInfo[] fis = di.GetFiles();
foreach (FileInfo fi in fis)
Console.WriteLine("{0}, {1}", fi.Name, fi.LastWriteTime);

Array.Sort(fis, new SortFile());

foreach (FileInfo fi in fis)
Console.WriteLine("{0}, {1}", fi.Name, fi.LastWriteTime);

}
}

--------------------------------------------------------------
程序,犹如人生。

110,560

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧