我正在制作一个视频下载应用,我在保存和删除应用下载的文件到外部存储空间时没有任何问题,但是应用程序无法删除从我的计算机传输的任何文件。
这是一个真正的问题,因为它是我想要的关键功能之一。这是我正在使用的代码:
public boolean deleteDataFromStorage(Data toDelete) {
//The file object soon to be deleted
File f = null;
Log.e(TAG, "Deleting " + toDelete.fileName);
// Delete file from storage
try {
// Get file to delete
f = new File(Environment.getExternalStorageDirectory().getCanonicalPath() + DIRECTORY + toDelete.fileName);
} catch (IOException e) {
Log.e(TAG, e.toString());
// Print to stack trace
e.printStackTrace();
}
// Delete file
if(f.delete()) {
return true;
} else {
Log.e(TAG, "Failed to delete " + toDelete.fileName);
return false;
}
}
由于f.delete()
函数没有抛出任何异常,我不知道问题是什么。我唯一能想到的是该应用程序没有删除在Windows中创建的文件的权限,但我已经从应用程序商店下载了删除传输文件没有问题的应用程序。
非常感谢任何帮助。
答案 0 :(得分:2)
根据您的评论,由于f.isFile()
和f.exists()
返回false,因此您的f
不是文件,换句话说,您的路径错误。
打印到日志f.getAbsolutePath()
,检查它是什么,然后它应该很容易修复。