按照修改时间顺序对文件夹内文件进行管理

按照修改时间顺序对文件夹内文件进行管理 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)
            }
        }
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值