我希望使用C#获取按创建日期排序的文件夹中的文件列表。
我使用以下代码:
if(Directory.Exists(folderpath))
{
DirectoryInfo dir=new DirectoryInfo (folderpath);
FileInfo[] files = dir.GetFiles().OrderBy(p=>p.CreationTime).ToArray();
foreach (FileInfo file in files)
{
......
}
}
这将给出创建时间的升序。我实际上想要在我的数组的第一个位置(降序)获取最近创建的文件。
答案 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;
}