2009-03-04 4 views

Antwort

2

Der Pythonic Weg, dies wäre zu tun:

fileInfos = list(DirectoryInfo(path).GetFiles()) 
fileInfos.sort(key=lambda f: f.CreationTime, reverse=True) 

Die Liste Sortiermethode nimmt eine Schlüsselfunktion, die verwendet wird für jedes Element den Sortierschlüssel zu bekommen.

1

DirectoryInfo.GetFiles() gibt ein Array von FileInfo-Objekten zurück. Ich habe eine generische Liste erstellt, in der die FileInfo-Objekte gespeichert und mit einem benutzerdefinierten Vergleicher sortiert wurden.

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)