android – 删除目录中最旧的文件,直到它在某个文件大小之下

android – 删除目录中最旧的文件,直到它在某个文件大小之下,第1张

概述我要完成的是以下内容:假设我有一个将图像写入File目录(SD或内部缓存)的函数.写完文件后,我会检查我的图像目录是否在某个总文件大小内(现在,我正在使用这个 function递归计算目录的文件大小).如果我刚刚添加的文件使该目录太大,那么我想要做的就是继续删除旧文件,直到我们刚好低于最大文件大小. 我想首先从最早的文件目录成员排序(通过比较器,使用此example升序),然后将数组转换为Arra 我要完成的是以下内容:假设我有一个将图像写入file目录(SD或内部缓存)的函数.写完文件后,我会检查我的图像目录是否在某个总文件大小内(现在,我正在使用这个 function递归计算目录的文件大小).如果我刚刚添加的文件使该目录太大,那么我想要做的就是继续删除旧文件,直到我们刚好低于最大文件大小.

我想首先从最早的文件目录成员排序(通过比较器,使用此example升序),然后将数组转换为ArrayList以获取其迭代器,然后我们的目录文件大小仍然高于最大文件大小,我仍然有文件要迭代,我删除旧文件,直到我打破那个while循环.有没有更有效的方法来实现这一目标?

解决方法 你的瓶颈很可能是文件系统 *** 作(即:读取目录内容和删除文件),而不是内存 *** 作,所以你可能不应该担心后者的效率,只要你不要做一些非常低效的事情.

你描述的粗略算法听起来不错.您只需执行以下 *** 作即可避免ArrayList转换:

for (Pair pair : pairs) {    if (totalSize <= maxSize) {        break;    }    totalSize -= pair.f.length();    pair.f.delete();}
总结

以上是内存溢出为你收集整理的android – 删除目录中最旧的文件,直到它在某个文件大小之下全部内容,希望文章能够帮你解决android – 删除目录中最旧的文件,直到它在某个文件大小之下所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1124277.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存