2017-09-26 4 views
0

모든 파일 목록을 얻을 수있는 폴더가 있습니다.Java에서 파일 형식으로 파일 이름을 정렬하는 방법

File []filesPaths = filePath.listFiles((dir, name) -> !name.equals(".DS_Store")); 

filesPaths 내가 파일을 정렬 할 파일 및 폴더의 모든 목록 제 후 폴더를 제공 포함되어 있습니다.

+2

"디렉토리 우선"주문 ([https://stackoverflow.com/questions/4440765/comparatorfile-for-directories- first- order])에 대한 [비교기] 또는 https : // stackoverfl ow.com/questions/32312738/how-to-sort-listfile-to-list-directories-first-and-grouping-files-by-directory에는 Java 8 솔루션이 있습니다. – nullpointer

답변

0

배열을 정렬하려면 Arrays.sort(T[] a, Comparator<? super T> c)을 사용하십시오.

는 지난 디렉토리 를 정렬이 디렉토리의 경우 true를 반환 File.isDirectory()를 호출하여 디렉토리를 식별하고 (true 전에 false 종류) 부울 값을 기준으로 정렬 Boolean.compare(boolean x, boolean y)를 사용하십시오. 자바 8 람다 식을 사용하여

, 그것은 코드의 한 라인이다 :

// Sort directories last 
Arrays.sort(filesPaths, (a,b) -> Boolean.compare(a.isDirectory(), b.isDirectory())); 

당신이 처음, 단순히 compare()에 호출 ab 플립 디렉토리를 정렬 할 경우

// Sort directories first 
Arrays.sort(filesPaths, (a,b) -> Boolean.compare(b.isDirectory(), a.isDirectory())); 
관련 문제