我想创建和删除位于/ 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()用于dir / data / data / providers / downloads / cache吗?
欢迎任何理想。
BR 艾伦
答案 0 :(得分: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有自己明确的缓存方法可以使用,但它需要你实际将东西保存到缓存中。问题可能是您从未向其添加任何内容,并且您只有权清除自己的缓存?
How do I take advantage of Android's "Clear Cache" button无论如何讨论这个问题:)
祝你好运编辑: 此外,您确定您的文件路径是否正确?你可以使用
Environment.getDownloadCacheDirectory()
为了找到缓存的根目录,我想?