问题 我写了一个文件到Environment.DIRECTORY_DOWNLOADS,为什么我不能通过下载应用程序看到它?


我在Environment.DIRECTORY_DOWNLOADS目录中编写(写入,而不是下载,确切地说是我的应用程序的SQLite数据库的转储)文件。

File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File file = new File(path, "db.csv");

如果我用文件浏览器浏览手机,我可以正确看到该文件

  /storage/emulated/0/Download

目录,以及其他下载。

但是,如果我打开下载应用程序,它不会显示...

我还需要做什么才能让文件显示在下载应用程序中?


11571
2017-12-09 13:57


起源

您好,您是否设法解决了您的问题?我有完全相同的问题,如果你能分享解决方案,那就太好了。谢谢。 - rontho


答案:


“下载”应用仅显示通过下载下载的下载 DownloadManager,而不是目录中的所有文件。


6
2017-12-09 14:20



我怎样才能找到我的下载文件 Environment.DIRECTORY_DOWNLOADS - mehmet
@mehmet:使用DDMS。或者,使用USB电缆将设备的外部存储装置安装在计算机上。 - CommonsWare
在编程方面没有在机器人中没有 - mehmet
@mehmet:我不知道“发现”是什么意思。您可以使用Java I / O,例如 File class,处理文件。 - CommonsWare
@rontho有更好的asnwer - Tom Brinkkemper


如果有人想知道如何做到这一点,我找到了答案 这里

要允许系统在“下载”应用程序中显示您的文件,您需要显式通知DownloadManager使用该方法完成下载 addCompletedDownload()

通过使用它,系统将允许您的下载应用程序显示您自己创建的文件。

希望它会有所帮助。


5
2017-11-16 10:56





你刚才创建了File实例

File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File file = new File(path, "db.csv");

但是尚未创建文件“db.csv”。使用

file.createNewFile();

创建文件“db.csv”真的...


3
2017-12-09 14:04



感谢Gopal,文件被创建并显示在目录中,只是它没有像我期望的那样在下载应用程序中显示,因为我正在写它 Environment.DIRECTORY_DOWNLOADS 目录。 - Lisa Anne


尝试设置setVisibleInDownloadsUi属性。这允许下载应用程序中显示下载。

看到 下载管理器


1
2018-05-06 12:14





将文件添加到下载列表:

DownloadManager dm = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
dm.addCompletedDownload("db.csv", "my description", false, "text/csv", file.getAbsolutePath(), file.length(), false);

0
2018-02-28 16:37