Android:从 "Downloads" 文件夹中删除下载的文件快捷方式
Android: Remove Downloaded file shortcut from "Downloads" folder
在我的代码中,我曾经下载 apk,使用它,然后将其删除。但删除后,Apk 仅从内部存储(内部 storage/android/data//files/download)中删除,但它仍在我的 Files/Downloads 文件夹中。
如何以编程方式从我的 Files/Downloads 文件夹中删除此 shortcut/view,或者如何防止将其保存到此文件夹中?
下载代码:
final String destination = context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + FORWARD_SLASH + TMP_APK_NAME;
final Uri uri = Uri.parse("file://" + destination);
//set downloadmanager
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
//set destination
request.setDestinationUri(uri);
// get download service and enqueue file
final DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
删除代码:
//Delete update file if exists
final File file = new File(destination);
if (file.exists()) {
file.delete();
}
您也可以尝试这种方式 - 希望它能奏效。
由于 DownloadManager
可以下载此 uri
中的文件,因此您可以删除 uri
中的文件。
// Delete update file if exists
File file = new File(uri.getPath());
if (file.exists()) {
file.delete();
}
final String destination = context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + FORWARD_SLASH + TMP_APK_NAME;
final Uri uri = Uri.parse("file://" + destination);
File file = new File(uri.getPath());
if (file.exists()) { // if your file exit
file.delete();
}
确保您有写外部存储权限
根据 documentation
enqueue 将 return 一个长值,表示下载文件夹中此文件的 ID。将此值存储在变量中
long fileId = manager.enqueue(request);
然后使用此值将其从下载中删除
manager.remove(fileId);
在我的代码中,我曾经下载 apk,使用它,然后将其删除。但删除后,Apk 仅从内部存储(内部 storage/android/data//files/download)中删除,但它仍在我的 Files/Downloads 文件夹中。 如何以编程方式从我的 Files/Downloads 文件夹中删除此 shortcut/view,或者如何防止将其保存到此文件夹中?
下载代码:
final String destination = context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + FORWARD_SLASH + TMP_APK_NAME;
final Uri uri = Uri.parse("file://" + destination);
//set downloadmanager
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
//set destination
request.setDestinationUri(uri);
// get download service and enqueue file
final DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
删除代码:
//Delete update file if exists
final File file = new File(destination);
if (file.exists()) {
file.delete();
}
您也可以尝试这种方式 - 希望它能奏效。
由于 DownloadManager
可以下载此 uri
中的文件,因此您可以删除 uri
中的文件。
// Delete update file if exists
File file = new File(uri.getPath());
if (file.exists()) {
file.delete();
}
final String destination = context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + FORWARD_SLASH + TMP_APK_NAME;
final Uri uri = Uri.parse("file://" + destination);
File file = new File(uri.getPath());
if (file.exists()) { // if your file exit
file.delete();
}
确保您有写外部存储权限
根据 documentation enqueue 将 return 一个长值,表示下载文件夹中此文件的 ID。将此值存储在变量中
long fileId = manager.enqueue(request);
然后使用此值将其从下载中删除
manager.remove(fileId);