2011-06-02 20 views
11

Ruby docs bundan bahsetme.Dir.glob siparişi garanti ediyor mu?

Dir.glob("*"), döndürdüğü dosyaların sırasını garanti ediyor mu, yoksa emin olmak için bunları kendim mi sıralamalıyım?

+1

Ben Ruby kaynağındaki dir.c' 'readdir (3)' listesini oluşturmak için çağırır 'hiçbir şekilde sıralanır sanmıyorum ve dosyada 'sort' için herhangi bir referans görmüyorum ... – sarnold

+1

+1. RDoc'u 1.9.3 için daha kesin yaptım. –

cevap

9

sayılı Eğer işletim sistemleri üzerinde gidiyoruz değil eğer: http://rubyforge.org/tracker/index.php?func=detail&aid=12795&group_id=426&atid=1698

+1

Ayrıca sanırım, alt seviyede hiçbir zaman gerçek bir iç sipariş yoktur, bu yüzden her dizin listeleme çıktısı özel bir şekilde önceden sıralanır; harddisks/filesystems genel olarak alfabetik olmayan bir dosya/dir organizasyonuna sahiptir. Yani: Sıralı listeleme ihtiyacınız varsa -> sıralayın! – asaaki

+1

@asaaki, bazen burada * düşük düzeyli sipariş var. Örneğin, NTFS dizin girişlerini ham, ikili Unicode düzeninde (sıralı sıralama) depolar. Raymond Chen'in gönderisine bakın: ["Niçin NTFS ve Explorer dosya adı ayrıştırmaya katılmıyor?"] (Http://blogs.msdn.com/b/oldnewthing/archive/2005/06/17/430194.aspx). Ayrıca, kullanılan belirli siparişin kullanıcı için uygun olmadığına da dikkat çekiyor, dolayısıyla kullanıcı arayüzünü sıralamanız gerekiyor. – efotinis

1

Dokümanlar bunu söylemezse, o zaman garanti yoktur ve bunu kendiniz için sıralamanız gerekir. Mevcut yakutunuzda çalışsa bile, bir sonraki sırada olmayabilir.

İlgili konular