2014-04-04 2 views

답변

0

Java7이하 :
참조 fge의 포스트


Java8 :

final FTPFile[]   files = new FTPFile[100]; //or what ever  
final Comparator<FTPFile> sorter = (e1, e2) -> e1.getTimestamp().compareTo(e2.getTimestamp()); 

Arrays.sort(files, sorter); 
+0

결과는 힌트 : – fge

+0

편집, 감사합니다! – ifloop

0

FTPFile 개체에 대한 사용자 정의 Comparator를 작성하고 사용 Arrays.sort()를 사용 그 Comparator.

이 메서드는 배열 에 정렬합니다. 당신을 가정

아파치의 평민 - 그물 FTPFILE에 대해 이야기하고, 비교기는 같이 쓸 수있다 : 자바 8 사용하는 경우

private static final Comparator<FTPFile> CMP = new Comparator<>() 
{ 
    @Override 
    public int compare(final FTPFile a, final FTPFile b) 
    { 
     return a.getTimeStamp().compareTo(b.getTimeStamp()); 
    } 
} 

다음 FTPFILE 가정 @ ifLoop의 솔루션

0

보고 Java 파일의 종류 또는 하나를 얻기 위해 번역 될 수 있습니다

Collections.sort (list, comparator), 다음 비교기를 사용할 수 있습니다 :

class FileComparator implements Comparator<File> { 

@Override 
public int compare(File o1, File o2) { 

    try { 
     BasicFileAttributes attr1 = Files.readAttributes(o1.toPath(), BasicFileAttributes.class); 
     BasicFileAttributes attr2 = Files.readAttributes(o2.toPath(), BasicFileAttributes.class); 
     return attr1.lastModifiedTime().compareTo(attr2.lastModifiedTime()); 

    } catch (IOException e) { 
     // Handle this the way you want 
     e.printStackTrace(); 
    } 
    return 0; 
} 

}

+1

아주 나쁜 생각 IOException이 이런 식으로 처리하기위한'Stream'하지만,하지 배열 – fge

+0

예외를 처리하는 것은 개발자에게 달려 있습니다. 이것은 단지 샘플입니다. – Anshuman

+1

여전히 예외 처리가 좋지 않아서 기본적으로 '비교 자'가 제외됩니다. – fge

관련 문제