java.io API를 사용하고 있습니다. 아래의 패턴에 대한 내 디렉터리에 파일이 많이 있습니다. 내가 가장 오래된/또는 최신있는 10 개 파일을 원하는 경우 - java.io API : list method
FilenameFilter fileFilter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.matches(filePrefix+"_.*\\."+fileExt);
}
};
String listFiles [] = dirFile.list(fileFilter);
for(int i = 0 ;i < listFiles.length ; i++){
listOfFiles.add(listFiles[i]);
// need only 10 files to processed
if(i == 10){
break;
}
}
나는 내가 예를 들어, 시간을 기준으로 정렬을하고 싶었 경우 what.I 오전에
list
방법을 기반으로 나열하는 얻을 것이다 알고 싶었다.
나는 어떻게 할 것인가?
솔루션 :
Arrays.sort(listFiles, new Comparator<File>() {
@Override
public int compare(File f1, File f2) {
return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
}
});
당신은 내게이 경우 비교기를 사용하는 방법에 대한 아이디어를 제공하시기 바랍니다 수 있습니다. – VJS
한 번 더 질문 : listFile이 결과를 제공하는 방법. 알파벳 순서, 타임 스탬프 또는 무엇을 기준으로 파일 객체 집합을 반환합니까? 나는 ls -ltr, ls 또는 무작위 출력 – VJS
을 의미합니다. listFiles()는 기본적으로 순서를 지정하지 않습니다. 문서를 참조하십시오. 위에 링크되어 있습니다. 자신 만의 비교기를 작성해야합니다. 다시 한 번 전과 관련 있습니다. –