To jest okropne pytanie (w mojej głowie) i starałem się jak najlepiej znaleźć użyteczną dokumentację przy odrobinie szczęścia - tak, tutaj:Spójna kolejność Java File.list()?
Mam kod, który musi wykonać operację na wszystkich plikach w katalog. Ustawiam katalog w obiekcie File i używam fileObject.list() do iteracji plików w katalogu. Zostawiłem ten kod działający w ciągu jednej nocy, a on (po wielu nieudanych próbach) rozbił się w pewnym momencie. Próbuję dowiedzieć się, w którym momencie to się stało (tak, miałem okropne logowanie). Teraz, zgodnie z this javadoc, nie ma gwarancji zamówienia (alfabetycznie lub inaczej) podczas wymieniania plików, zastanawiam się, czy istnieje gwarancja spójności? Czy oznacza to, że gdy dwukrotnie uruchomię ten sam kod, otrzymam dokładnie tę samą kolejność plików? Logic mówi mi, że powinien, i wznowiłem operacje oparte na tym, ale jestem podejrzliwy. Ponadto jestem ciekawy, co "brak konkretnego porządku oznacza" od javadoc.
Jeśli chcesz zagwarantować zamówienie, dlaczego nie użyć "Komparatora"? – mre
Pliki mogą się zmieniać, gdy aplikacja jest uruchomiona ... co może zmienić sytuację w każdym z nich. Zamówienie najprawdopodobniej zależy od implementacji systemu plików. Najprawdopodobniej odpowiedź brzmi "tak, jest spójność", tak jakbyś robił "ls" lub "dir" w wierszu poleceń, daje ci spójność, ale nie gwarantuje sortowania alfabetycznego. – ricosrealm
Ach tak, chciałbym (teraz), ale to jest wznowienie biegu, który się nie powiódł, a ja nie chcę powtarzać przetworzonych plików. – kyun