这里我有一个问题,就是根据修改日期将搜索文件列入列表框。以下代码仅显示将搜索文件列入列表框。谁能帮我解决这个问题呢.....
protected void Button1_Click(object sender, EventArgs e)
{
ListBox1.Items.Clear();
string search = TextBox1.Text; // here type the folder name
if (search != "")
//DirectoryInfo d = new DirectoryInfo(@"\\192.123.1.18\Report\Result" + search);
{
string[] files = Directory.GetFiles(@"\\192.123.1.16\Report\Result\"+ search, "*.txt", SearchOption.AllDirectories);
foreach (string file in files)
{
//ListBox1.Items.Add(new ListItem(Path.GetFileName(file), file));
ListBox1.Items.Add(new ListItem(Path.GetFileName(file), file)); // listed all files in the search folder
}
{
search = "";
}
}
else
{
Response.Write("<script>alert('Please Enter Search Keyword');</script>");
}
}
答案 0 :(得分:1)
对于您可以调用的每个文件: File.GetLastWriteTime ,然后根据上次写入日期时间对此文件列表进行排序。
请参阅以下文章以获取更多信息。 https://msdn.microsoft.com/en-us/library/d5da1572.aspx
添加到此1.Filename,2.ModifiedDate和3.File中的属性。
List<FileModifiedDate> FileList=new List<FileModifiedDate>();
foreach (string file in files)
{
//ListBox1.Items.Add(new ListItem(Path.GetFileName(file), file));
// ListBox1.Items.Add(new ListItem(Path.GetFileName(file), file)); //
FileModifiedDate FileInfo=new FileModifiedDate();
FileInfo.FileName=Path.GetFileName(file);
FileInfo.File=file;
FileInfo.ModifiedDate=File.GetLastWriteTime(path);
FileList.Add(FileInfo);
}
FileList=FileList.OrderByDescending(a=>a.ModifiedDate).ToList();
foreach (FileModifiedDate SingleFile in FileList)
{
//ListBox1.Items.Add(new ListItem(Path.GetFileName(file), file));
ListBox1.Items.Add(new ListItem(SingleFile.FileName, SingleFile.file)); //
}
答案 1 :(得分:0)
对于您可以调用的每个文件:FileInfo.LastWriteTimeUtc,之后,您应该根据上次写入DateTime对该文件列表进行排序。 DateTime类实现了compasion操作符,这样您在排序时就不会遇到麻烦