2012-08-04 3 views
4

This 이상한 것 같습니다.왜 listFiles()가 순서를 보장하지 않습니까?

결과 배열 의 이름 문자열이 특정 순서로 표시된다는 보장은 없습니다. 특히 이 알파벳 순서로 표시되도록 보장되어 있지 않습니다.

주문을 보장 할 수없는 이유는 무엇입니까? 하나가 ls 일 때 합리적인 기본값이 될 수 있습니다.

성능상의 이유로 결정되었거나 더 깊은 진실이있는 곳입니까?

+4

이 질문에 답하십시오 : 파일 목록의 "자연"순서는 무엇입니까? 파일 이름? 추가 된 날짜? 유형? 크기? –

+1

플랫폼 간? 로케일? – trashgod

+1

'ls는 내부적으로 이름을 정렬합니다. –

답변

8

내가 아는 한, 파일들이 끌어 당기는 자연스러운 순서는 없습니다. 알파벳을 말하면, 로케일/배열 순서는 어떻게됩니까? Java가 실행하는 모든 OS가 본질적으로 그 명령을 지원합니까? 그렇지 않은 경우 API는 OS에서받은 모든 것을 처리해야합니다. API 클라이언트 1)가 신경 쓰지 않거나 2) 다른 것을 원할 것이므로, 낭비되는 정렬을 수행하는 대신 보증 된 순서없이 파일을 전달하는 것이 훨씬 더 합리적입니다. 당신이 관심이 있다면, 당신은 그 정렬을 할 수 있습니다.

+0

+1 OS에서 제공하는 명령을주는 것이 가장 현명한 명령입니다. 다른 방법으로는 자신의 방식대로 정렬 할 수 있습니다. –

관련 문제