我正在制作一个视频下载器应用程序,保存和删除应用程序下载到外部存储的文件没有问题,但是应用程序无法删除从我的计算机传输的任何文件。
这是一个真正的问题,因为它是我想要的关键功能之一。这是我正在使用的代码:
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 中创建的文件的权限,但我已经从应用程序商店下载了可以毫无问题地删除传输文件的应用程序。
如有任何帮助,我们将不胜感激。
最佳答案
根据您的评论,由于 f.isFile()
和 f.exists()
返回 false,您的 f
不是文件,换句话说,你弄错了路径。
打印到日志 f.getAbsolutePath()
,检查它是什么,然后应该很容易修复。
关于android - 无法删除从 Android 中的计算机传输的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16626060/