2016-04-06 2 views
1

Es scheint, dass die Reihenfolge der Dateisystem-Entities, die durch die Methode .children von Pathname zurückgegeben wird, willkürlich oder zumindest nicht alphabetisch ist.Bestellung in Ruby Pfadname .Children

Gibt es eine Möglichkeit, diese über das Dateisystem in alphabetischer Reihenfolge zurückzugeben, anstatt .sort für das zurückgegebene Array aufzurufen?

Antwort

3

Pathname des children tatsächlich tut:

def children(with_directory=true) 
    with_directory = false if @path == '.' 
    result = [] 
    Dir.foreach(@path) {|e| 
    next if e == '.' || e == '..' 
    if with_directory 
     result << self.class.new(File.join(@path, e)) 
    else 
     result << self.class.new(e) 
    end 
    } 
    result 
end 

Dir.foreach ruft das Betriebssystem und iteriert das Verzeichnis übergeben Es gibt keine Vorschrift, die die OS für das Erklären von einer bestimmten Reihenfolge zu sortieren..

"What is the "directory order" of files in a directory (used by ls -U)?" ist wahrscheinlich von Interesse für Sie.

+0

Während ich die Abstimmung und alle zu schätzen, lesen Sie bitte den letzten Absatz in http://stackoverflow.com/help/someone-answers. –

+0

Ich finde das eine seltsame Politik. Ich hatte nie eine mentale Verbindung zwischen einer akzeptierten Antwort und Dankbarkeit für diese Antwort :) –

+0

Es ist nicht seltsam, wenn Sie das Ziel von SO verstehen. Es ist kein Diskussionsforum und es wird davon abgeraten, zwischen Kommentaren hin- und herzuspringen, da es um Erläuterungen und Empfehlungen geht. Dafür stehen andere Mechanismen zur Verfügung. –