按照修改时间顺序对文件夹内文件进行管理 Kotlin
Java版本请亲自转码
private var totalSize = 0.0
fun manageFileSize(path: String, size: Long) {
val file = File(path)
//默认是升序,可改为降序
val treeMap = TreeMap<Long, File> { p0, p1 -> p0.compareTo(p1) }
totalSize = 0.0
getTimeSeqMap(treeMap, file)
treeMap.keys.map {
if (totalSize < size) {
return@map
}
totalSize -= treeMap[it].length()
FileUtil.deleteFile(treeMap[it])
}
}
private fun getTimeSeqMap(treeMap: TreeMap<Long, File>, file: File) {
if (file.exists()) {
if (file.isFile) {
treeMap[file.lastModified()] = file
totalSize += file.length()
} else {
file.listFiles()?.forEach {
getTimeSeqMap(treeMap, it)
}
}
}
}