使用C#按创建日期降序获取目录中的文件列表

时间:2013-12-10 05:08:02

标签: c# file

我希望使用C#获取按创建日期排序的文件夹中的文件列表。

我使用以下代码:

        if(Directory.Exists(folderpath))
        {
            DirectoryInfo dir=new DirectoryInfo (folderpath);
            FileInfo[] files = dir.GetFiles().OrderBy(p=>p.CreationTime).ToArray();
            foreach (FileInfo file in files)
            {
              ......
            }
        }

这将给出创建时间的升序。我实际上想要在我的数组的第一个位置(降序)获取最近创建的文件。

3 个答案:

答案 0 :(得分:26)

您可以使用OrderByDescending

DirectoryInfo dir = new DirectoryInfo (folderpath);

FileInfo[] files = dir.GetFiles().OrderByDescending(p => p.CreationTime).ToArray();

答案 1 :(得分:4)

  

DirectoryInfo:公开用于创建,移动和的实例方法   枚举目录和子目录。这堂课不行   继承。

使用this

var di = new DirectoryInfo(directory);
var filesOrdered = di.EnumerateDirectories()
                    .OrderByDescending(d => d.CreationTime)
                    .Select(d => d.Name)
                    .ToList();

答案 2 :(得分:1)

这是Java版本,就像想法的指针一样:

protected File[] getAllFoldersByDescendingDate(File folder)
{
    File[] allFiles = folder.listFiles(new FilenameFilter()
    {
        @Override
        public boolean accept(File current, String name)
        {
            return new File(current, name).isDirectory();
        }
    });
    Arrays.sort(allFiles, new Comparator<File>()
    {
        public int compare(final File o1, final File o2)
        {
            return Long.compare(o2.lastModified(), o1.lastModified());
        }
    });
    if ( allFiles == null)
    {
        allFiles = new File[]{};
    }
    return allFiles;
}