读书人

怎么让DirectoryInfo显示指定时间范围

发布时间: 2013-07-11 15:38:46 作者: rapoo

如何让DirectoryInfo显示指定时间范围内的文件
比如只显示创建时间在2012-1-1年至2013-1-1的文件,谢谢大侠们
找了很久,没找到方法


ICollection CreateDataSourceFile()
{
DataTable dtFile = new DataTable();
DataRow dr;
dtFile.Columns.Add("Name", typeof(string));

dtFile.Columns.Add("LastWriteTime", typeof(DateTime));

//得到此目录下所有文件名的字符串数组
DirectoryInfo dir = new DirectoryInfo(Server.MapPath("../Backup"));
FileInfo[] flist = dir.GetFiles("*.bak");///限定读取该文件夹后缀为bak的文件

foreach (FileInfo f in flist)
{
dr = dtFile.NewRow();
dr[0] = f.Name;//文件名
dr[1] = f.LastWriteTime;//创建时间
dtFile.Rows.Add(dr);
}
DataView dvFile = new DataView(dtFile);

dvFile.Sort = "LastWriteTime Desc";//按照时间排序

return dvFile;
}
[解决办法]

            DataTable dtFile = new DataTable();
DataRow dr;
dtFile.Columns.Add("Name", typeof(string));

dtFile.Columns.Add("LastWriteTime", typeof(DateTime));



//得到此目录下所有文件名的字符串数组
DirectoryInfo dir = new DirectoryInfo(Server.MapPath("../Backup"));
FileInfo[] flist = dir.GetFiles("*.bak");///限定读取该文件夹后缀为bak的文件

foreach (FileInfo f in flist)
{
dr = dtFile.NewRow();
dr[0] = f.Name;//文件名
dr[1] = f.LastWriteTime;//创建时间
dtFile.Rows.Add(dr);
}

DataTable newdt = new DataTable();
newdt = dtFile.Clone();
DataRow[] newDr = dtFile.Select("LastWriteTime >= '2012-1-1' and LastWriteTime <= '2013-1-1'");

for (int i = 0; i < newDr.Length; i++)
{
newdt.ImportRow((DataRow)newDr[i]);

}

DataView dvFile = new DataView(newdt);

dvFile.Sort = "LastWriteTime Desc";//按照时间排序

return dvFile;

读书人网 >asp.net

热点推荐