使用Directory.GetFiles,如何按文件名,扩展名,创建时间分别进行升序或降序排序

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

public   enum   SortOption 
{ 
	FileName, 
	Extension, 
	CreationTime 
} 
public   enum   OrderOption 
{ 
	UP=1, 
	Down=-1 
}
	/// <summary>
	/// SortFile 的摘要说明。
	/// </summary>
public class SortFile:   IComparer   
{ 
	SortOption   mso; 
	OrderOption  odo; 
	public   SortFile(SortOption   so) 
	{ 
		mso   =   so; 
		odo = OrderOption.UP;
	}
	public   SortFile(SortOption   so,OrderOption  oo) 
	{ 
		mso   =   so; 
		odo = oo;
	} 

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

			switch   (mso) 
			{ 
				case   SortOption.FileName: 
					return   ((int)odo)*String.Compare(fa.Name,   fb.Name,   true); 
					//break; 
				case   SortOption.Extension: 
					return   ((int)odo)*String.Compare(Path.GetExtension(fa.Name),   Path.GetExtension(fb.Name),   true); 
					//break; 
				case   SortOption.CreationTime: 
					return   ((int)odo)*DateTime.Compare(fa.CreationTime,   fb.CreationTime); 
					//break; 
				default: 
					break; 
			}
		}
		catch{}
		return   0; 
	} 


	public   static   void   test(string   sDir) 
	{ 
		//string   sDir   =   @ "e:\labs\csdn "; 
		DirectoryInfo   di   =   new   DirectoryInfo(sDir); 
		FileInfo[]   fis   =   di.GetFiles(); 
		foreach   (FileInfo   fi   in   fis) 
			Console.WriteLine( "{0},   {1} ",   fi.Name,   fi.CreationTime); 

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

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


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

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


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

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

	} 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stoneson

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值