给定一个 FileInfo 对象列表,如何按日期对它们进行排序?具体来说,我想按 CreationTime 降序对它们进行排序。
Tom E
问问题
1334 次
2 回答
2
这样做的 Pythonic 方式是:
fileInfos = list(DirectoryInfo(path).GetFiles())
fileInfos.sort(key=lambda f: f.CreationTime, reverse=True)
列表排序方法采用一个键函数,用于获取每个项目的排序键。
于 2009-03-04T23:37:52.683 回答
1
DirectoryInfo.GetFiles() 返回一个 FileInfo 对象数组。我创建了一个通用列表来保存 FileInfo 对象,并使用自定义比较器进行排序。
logDir = r"C:\temp"
fileInfosArray = DirectoryInfo(logDir).GetFiles("*.log")
fileInfosList = List[FileInfo]()
fileInfosList.AddRange(fileInfosArray)
fileInfosList.Sort(FileInfoCompareCreationTimeDesc)
for fileInfo in fileInfosList:
print fileInfo.CreationTime, fileInfo.LastAccessTime, fileInfo.LastWriteTime, fileInfo.Name
# comparison delegate for FileInfo objects: sort by CreationTime Descending
def FileInfoCompareCreationTimeDesc(fileInfo1, fileInfo2):
return fileInfo2.CreationTime.CompareTo(fileInfo1.CreationTime)
于 2009-03-04T19:23:31.063 回答