So sortieren Sie den ReadDir-Iterator

8

Ich kann eine Verzeichnisliste wie folgt anzeigen:

%Vor%

Kann ich den ReadDir Iterator vor der Iteration sortieren? Die Verzeichnisnamen sind datumsähnliche Zahlen wie 201610131503 . Ich lese die Dokumentation für ReadDir , aber ich habe keine eingebaute Funktion gefunden dafür. Vielleicht kann ich nicht suchen?

    
rap-2-h 13.10.2016, 13:05
quelle

2 Antworten

6

ReadDir liest nur jeweils einen Eintrag, so dass er vor dem Iterieren nicht sortiert werden kann. Es gibt keinen sortierten readdir Systemaufruf (zumindest nicht auf den Plattformen, die ich kenne, was bedeutet, dass es keinen tragbaren geben kann).

Also ist die einzige Möglichkeit, in Vec zu lesen und dort zu sortieren:

%Vor%     
Chris Emerson 13.10.2016, 13:14
quelle
4
  

Kann ich den ReadDir Iterator vor der Iteration sortieren?

Grundsätzlich nein. Auf Mac OS und Linux die Funktion readdir_r wird verwendet . Diese Rückgabe erfolgt nicht in einer bestimmten Reihenfolge . Im Allgemeinen wird es in der Reihenfolge zurückgegeben, die für das Dateisystem am schnellsten / am einfachsten ist, wobei sich bei jedem Aufruf ändern kann.

Sie müssen die Elemente sammeln, sortieren und dann erneut ausführen.

    
Shepmaster 13.10.2016 13:14
quelle

Tags und Links