0

我想创建和删除位于 /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 吗?

欢迎任何理想。

布拉艾伦

4

1 回答 1

0

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

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有它自己可以使用的清除缓存方法,但它需要你实际将东西保存到缓存中。问题可能是您从未向其中添加任何内容,并且您只有清除自己缓存的权限?

我如何利用 Android 的“清除缓存”按钮无论如何讨论问题:)

祝你好运

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

        Environment.getDownloadCacheDirectory()

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

于 2012-09-18T07:57:24.330 回答