class FileComparator {
companion object {
const val COMPARETYPE_NAME = 0
const val COMPARETYPE_DATE = 1
}
fun sortFiles(files: Array<File>, compareType: Int): Array<File> {
files.sortWith(Comparator { obj1, obj2 ->
var str1 = ""
var str2 = ""
when (compareType) {
COMPARETYPE_NAME -> {
str1 = (obj1 as File).name
str2 = (obj2 as File).name
}
COMPARETYPE_DATE -> {
str1 = (obj1 as File).lastModified().toString()
str2 = (obj2 as File).lastModified().toString()
}
}
str1.compareTo(str2)
})
return files
}
}
미리 클래스로 작성해주고 필요한 곳에서 사용할 수 있도록 했다. (메소드만 만들어서 사용해도 무관)
val path = "${Environment.getExternalStorageDirectory().absolutePath}/docs"
val dir = File(path)
var tempFiles = dir.listFiles{ pathname -> pathname.name.endsWith("_doc.csv")} ?: return
tempFiles = FileComparator().sortFiles(tempFiles, FileComparator.COMPARETYPE_DATE)
사전에 저장해 놓을 파일 경로를 통해 File 객체를 만들고 listFiles()
로 디렉토리의 파일리스트를 불러온다.
나의 경우 파일이 여러 종류가 저장되어있고 파일명 끝에 "_doc.csv"로 끝나는 파일만 걸러서 가져왔다.
사전에 만들어놓은 메소드를 이용하여 가져온 파일리스트를 최근수정일(COMPARETYPE_DATE)로 가져온다.