我尝试从应用程序专用存储目录中删除文件时遇到了一些问题,该文件以编程方式创建和压缩。从应用程序专用存储目录中删除文件 - Android
我面临的问题是,当我调用file.exists()时,它不会识别该文件存在,因此它不会删除该文件。
这是我使用的是要删除的文件
public static void deleteImageFromPrivateArea(final String fileUri)
{
final File file;
boolean isFileDeleted;
if (isFilePathPrefixPresent(fileUri))
{//file name checking
file = new File(fileUri);
}
else
{
file = new File("file://" + fileUri);
}
if (file.exists())
{
isFileDeleted = file.delete();
if (! isFileDeleted)
{
throw new IllegalStateException("File was not deleted");
}
}
}
要搞清楚的代码,我知道我通过了fileURI是当前存在的文件的位置。我检查了一个文件管理器应用程序。
我有清单xml中设置的权限。
我认为正在发生的事情是,这段代码正在获取当前存在的文件的路径,并设置一个新文件但不向其写入数据,因此这个新文件在android中不存在。
所以我想我需要做的是让现有的文件(也许不是一个URI的形式,但实际的文件),然后调用.delete()作为那么该文件将存在。
或者
设立这个新的文件用了fileURI后,使用OutputfileStream将数据写入到它 - 这不会是我的首选方法,但。
-但我不完全确定。
嘿,感谢您的帮助!这让我接近我需要的东西。而不是使用getFilesDir()我用_getExternalFilesDir(Environment.DIRECTORY_PICTURES)_ – Samuroid