【问题标题】:How to Delete files in /data/data/providers/downloads/cache on Android如何在 Android 上删除 /data/data/providers/downloads/cache 中的文件
【发布时间】:2012-09-18 15:57:24
【问题描述】:

我想创建和删除位于 /data/data/providers/downloads/cache 中的一些文件。到目前为止,我可以成功下载目标文件并保存在 /data/data/providers/downloads/cache 中,但是当我尝试删除位于 /data/data/providers/downloads/cache 中的文件时,它最终失败了。我的方法如下

File directory = new File("/data/data/providers/downloads/cache");
File[] files = directory.listFiles();

我想列出所有文件,以便找到需要删除的目标文件。 我发现 listFiles() 方法总是返回 NULL,所以我的问题是,我可以使用 listFile() 到目录 /data/data/providers/downloads/cache 吗?

欢迎任何理想。

BR 艾伦

【问题讨论】:

  • 您是如何在 /data/data/providers.手机root了吗?通常 /data/data 是受保护的,只有属于应用程序的文件夹是可见的

标签: java android


【解决方案1】:

我使用这种方法:当我想删除包括目录在内的所有文件时。

static public boolean deleteDirectory(File path) {
    if( path.exists() ) {
        File[] files = path.listFiles();
        if (files == null) {
            return true;
        }
        for(int i = 0; i < files.length; i++) {
            if(files[i].isDirectory()) {
                deleteDirectory(files[i]);
            }
            else {
                files[i].delete();
            }
            Log.d("Deleting Files", files[i].getPath());
        }
    }

    return( path.delete() );
}

但是android有它自己的清除缓存方法你可以使用,但它需要你实际保存东西到缓存中。问题可能是你从来没有添加任何东西,你只有清除自己缓存的权限?

How do I take advantage of Android's "Clear Cache" button 无论如何都在讨论这个问题:)

祝你好运

编辑: 另外,您确定您的文件路径正确吗?你可以使用

        Environment.getDownloadCacheDirectory()

我想是为了找到缓存的根目录?

【讨论】:

  • 感谢您的回复。我确定我提供了正确的文件路径。我只是想出了另一个理想,在android系统中,某个应用程序数据的目录不会暴露给程序员,就像我的情况下的数据路径/data/data/com.android/providers/downloads一样。所以我不能直接用 File 操作目录。在应用程序的数据路径中查找和删除某些内容的唯一方法是使用 Cursor 和 ContentResolver。因此,当我对应用程序的数据路径使用 listFiles() 方法时,它总是返回 NULL。以上是我的意见,欢迎大家提出其他意见。
  • 那我很难在不知道更多关于程序的细节的情况下帮助你对不起:/
猜你喜欢
  • 2017-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多