在.NET中按创建日期获取文件

Sen*_*ful 81 .net c# file

我有一个包含许多文件的文件夹.有没有简单的方法来获取目录中的文件名按创建日期/时间排序?

如果我使用Directory.GetFiles(),它将返回按文件名排序的文件.

Geo*_*kos 177

这可能对你有用.

using System.Linq;

DirectoryInfo info = new DirectoryInfo("PATH_TO_DIRECTORY_HERE");
FileInfo[] files = info.GetFiles().OrderBy(p => p.CreationTime).ToArray();
foreach (FileInfo file in files)
{
    // DO Something...
}
Run Code Online (Sandbox Code Playgroud)

  • 我认为没有必要调用ToArray()方法. (12认同)
  • 如果有可能在不同的时区(包括夏令时)创建目录中的文件,请考虑使用info.GetFiles().OrderBy(p => p.CreationTimeUtc)而不是CreationTime. (7认同)
  • 这是一种扩展方法... http://msdn.microsoft.com/en-us/library/bb383977.aspx (2认同)

Sev*_*Sev 42

你可以使用Linq

var files = Directory.GetFiles(@"C:\", "*").OrderByDescending(d => new FileInfo(d).CreationTime);
Run Code Online (Sandbox Code Playgroud)

  • DirectoryInfo 解决方案比这快得多(特别是对于网络路径) (2认同)

小智 8

如果您不想使用LINQ

// Get the files
DirectoryInfo info = new DirectoryInfo("path/to/files"));
FileInfo[] files = info.GetFiles();

// Sort by creation-time descending 
Array.Sort(files, delegate(FileInfo f1, FileInfo f2)
{
    return f2.CreationTime.CompareTo(f1.CreationTime);
});
Run Code Online (Sandbox Code Playgroud)


BMG*_*BMG 5

这将返回上次修改日期及其年龄。

DateTime.Now.Subtract(System.IO.File.GetLastWriteTime(FilePathwithName).Date)
Run Code Online (Sandbox Code Playgroud)