file.delete()返回true,但文件仍然存在
我下面这段代码下载才能再次删除apk文件,然后安装它file.delete()返回true,但文件仍然存在
String destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/";
String fileName = getResources().getString(R.string.apkname) + ".apk";
destination += fileName;
final Uri uri = Uri.parse("file://" + destination);
File file = new File(destination);
if (file.canRead()) {
if (file.delete()) {
Toast.makeText(getApplicationContext(), "File deleted", Toast.LENGTH_LONG).show();
}
}
我发现这个文件,所以我得到file.delete(),然后我得到Toast消息,但是当我检查下载时,文件仍然存在,并且最终得到多个具有相同名称的文件,我仍然可以在没有问题的情况下使用它们,所以这就像file.delete()完全没有。
为了记录在案,我在清单WRITE_EXTERNAL_STORAGE同意;我要求它在运行时过,因为我使用sdkversion 25
有什么不对?
在此先感谢
尝试这种解决方案我已经测试...
String destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/";
String fileName = getResources().getString(R.string.apkname) + ".apk";
destination += fileName;
try {
File file = new File(destination);
if (file.canRead()) {
boolean mDeleleFile = file.delete();
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(new File(destination))));
if (mDeleleFile) {
Toast.makeText(getApplicationContext(), "File deleted", Toast.LENGTH_LONG).show();
}
}
} catch (Exception e) {
e.printStackTrace();
}
该文件在那里,但我仍然到达吐司消息,所以'mDeleteFile'为真 –
我已经为我测试了这项工作。一旦请检查应用程序的权限去手动..通过应用程序的信息,并检查外部存储权限 – rockstar
抱歉,延迟的答案。不是在运行时问足够的权限吗? 而你的解决方案适用于哪个Android版本? –
参考你有没有试图重新启动你的Android设备,如果重复的文件存在验证? –
@Divya我正在使用模拟器,实际上。 –
添加'try'和'exception'并检查错误是什么? –