在Android中快速删除包含30000多张图像的文件夹

时间:2012-03-17 07:04:07

标签: android file operating-system directory

我必须删除超过30000张图片的文件夹。 我有' .nomedia'将文件放在里面以防止一直扫描。 试图删除我必须检查每个文件的文件名的所有文件。如果我错过了这张支票 - ' .nomedia'文件将被删除。如果在图像之前发生这种情况 - 这将导致很大的性能损失。 知道如何解决这个问题吗?

UPDATE:

是否有人知道如何在不使用的情况下隐藏扫描图像' .nomedia'? 我可以保存带有虚假扩展名的文件,但我不确定这是否正常。

更新

实际上测试显示了这个结果:检查名称使删除速度慢了约50%。问题不在检查代码中,而是在系统扫描文件夹中:(

2 个答案:

答案 0 :(得分:1)

我的解决方案是:

  1. 使用图像重命名文件夹。
  2. 为里面带有'.nomedia'文件的图片创建新文件夹。
  3. 启动后台线程以删除旧文件夹。
  4. 这种方式并不比以前快,但允许用户立即继续工作。 当然有一个假设 - 用户必须知道删除和清理占用的空间有一段时间没有完成。

答案 1 :(得分:0)

您确定单独检查文件名的过程需要很长时间吗? 为了删除文件,我想你无论如何都需要File个对象。已经拥有File对象,执行以下操作的性能成本是多少?

".nomedia".equals(file.getName());

实际删除的费用(file.delete())应该比字符串比较多出几个数量级。

您是否测量过检查文件名所需的实际时间?