DirectoryInfo dir = new DirectoryInfo(filePath);
FileInfo[] files = dir.GetFiles();
foreach (FileInfo info in files)
{
  richTextBox.Text += info.Name + "       " + info.LastWriteTime.ToShortDateString() + "、A" + info.LastWriteTime.ToLongTimeString() + "\n";
}以上代码,我要实现的功能是取一个最新文件的更新时间为标准,所有文件的更新时间和它进行比较,如果相差两个小时,就把所有符合条件的文件显示到TextBox1中,

file1 更新时间:2011/01/12 ,11:50:13
file2 更新时间:2011/01/12 ,11:48:12
file3 更新时间:2011/01/12 ,08:50:13
file4 更新时间:2011/01/11 ,11:50:13哪么 TextBox1中就应该增加 file3 ,file4 这个应该怎么实现,请赐教。可以的贴段代码,谢谢。 

解决方案 »

  1.   


    FileInfo[] files = dir.GetFiles()
        .OrderBy(f => -f.LastWriteTime.Ticks)
        .ToArray();string str = "";
    foreach(FileInfo file in files)
    {
        TimeSpan diff = files[0].LastWriteTime - file.LastWriteTime;
        if (diff.TotalHours > 2)
        {
            break;
        }
        str += file.Name + "\r\n";
    }
      

  2.   


    private void button3_Click(object sender, EventArgs e)
            {
                DirectoryInfo dir = new DirectoryInfo(@"D:\test prj\vs2008\TestWinform\TestWinform\bin\Debug");
                FileInfo[] files = dir.GetFiles();
                string result = string.Empty;            IOrderedEnumerable<FileInfo> orderedFiles = from f in files
                                       orderby f.LastWriteTime descending
                                       select f;            FileInfo lastmodifiedFileInfo = orderedFiles.ElementAt(0);
                TimeSpan twoHours = new TimeSpan(2, 0, 0);
                result += lastmodifiedFileInfo.Name + " " + lastmodifiedFileInfo.LastWriteTime.ToShortDateString() + "、A" + lastmodifiedFileInfo.LastWriteTime.ToLongTimeString() + "\n";            for(int i = 1; i< orderedFiles.Count(); i++)
                {
                    FileInfo info = orderedFiles.ElementAt(i);
                    if ((lastmodifiedFileInfo.LastWriteTime - info.LastWriteTime) < twoHours)
                    {
                        result += info.Name
                                + " "
                                + info.LastWriteTime.ToShortDateString()
                                + "、A"
                                + info.LastWriteTime.ToLongTimeString() + "\n";
                    }
                }
                MessageBox.Show(result);
            }
      

  3.   

    List<FileInfo> lst=new List<FileInfo>();foreach (string file in System.IO.Directory.GetFiles("", "*.*", System.IO.SearchOption.AllDirectories))
    {
      (new FileInfo(file).LastWriteTime-DateTimw.Now).TotalHours 
      lst.Add(new FileInfo(file));
    }
    var result= (from r in lst
      orderby r.Name 
      select r).Take(20);  lst.Sort(delegate( FileInfo p1, FileInfo p2) { return p1.LastWriteTime.CompareTo(p2.LastWriteTime); });
    public class FileComparer : IComparer<FileInfo>
    {
      public int Compare(FileInfo x, FileInfo y)
      {
      return x.LastWriteTime.CompareTo(y.LastWriteTime);
      }
      }
    }
    排序判断