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

时间:2013-12-09 13:57:06

标签: android

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

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

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

中的文件
  /storage/emulated/0/Download

目录,以及其他下载。

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

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

6 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:6)

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

要允许系统在“下载”应用程序中显示您的文件,您需要使用addCompletedDownload()

方法明确通知DownloadManager下载已完成

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

希望它会有所帮助。

答案 2 :(得分:3)

您刚刚创建了像

这样的文件实例
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File file = new File(path, "db.csv");

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

file.createNewFile();

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

答案 3 :(得分:1)

尝试设置setVisibleInDownloadsUi属性。这样下载就可以在下载应用中看到。

请参阅Download.Manager

答案 4 :(得分:0)

将您的文件添加到下载列表中:

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

答案 5 :(得分:0)

如果您使用 setDestinationInExternalFilesDir(context, Environment.DIRECTORY_DOWNLOADS, fileName), 在 /sdcard/Android/data/<package name>/files/Download 中查找文件。在模拟器中,它可以在 Device File Explorer 中找到。

enter image description here

如果您使用 setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName),那么您可以在 Download 应用程序的 Files 文件夹中找到下载的文件。

enter image description here