繁体   English   中英

在android中找不到下载管理器下载的文件

[英]Can't find file downloaded by download manager in android

我正在尝试将文件下载到目录,该目录可能因用户选择的目录而异。 我将当前目录存储在文件对象中,现在尝试下载该文件。 文件下载,但不下载指定的目录。 那么,我该怎么做才能将文件放在所选目录中。

// Getting path to store the file   
String path = root.getAbsolutePath();   
path += curr.getName();   
request.setDestinationInExternalPublicDir(path, new File(url).getName());    
// get download service and enqueue file   
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);     
manager.enqueue(request);   

名为url的String,传递给File构造函数,包含一个URL。 只需使用它来检索该文件的名称。

更新:我刚刚找到了该文件。 它在手机里不是SD卡。 它位于此文件夹中,storage \\ emulated \\ 00。 不知道为什么? 另外,我得到的绝对路径是storage \\ emulated \\ 0。

因此,我发现返回的路径始终是storage\\emulated\\0用于调用getExternalStorageDirectory().getPath())到环境。 这是我用来获取初始目录的内容。 因此,例如,如果我浏览文件夹到Downloads文件夹,则路径将是storage\\emulated\\0\\Download 当我下载文件而不是去实际的下载文件夹时,它会转到或创建存储文件夹中模拟文件夹中的下载文件夹。 为了解决这个问题,我在路径中找到了零的索引,添加了1,并使用它得到了子串。 之后它起作用了。 另外,我必须在另一种浏览目录的方法中执行此操作。 作为参数,我传入文件,然后在方法中我得到子字符串。 在我用来下载文件的方法中,无论如何都得到storage\\emulated\\0 不知道为什么会这样做。 如果有人能解释这一点,将不胜感激。

root.getAbsolutePath()是否返回末尾带有路径分隔符的字符串?

如果没有,那么你可能会使用bin/usr/var/appfilename.ext而不是bin/usr/var/app/filename.ext ,因为你将它直接连接到文件名。

我在Android 7上仍然存在这个问题。在我的情况下,直到我重启设备才会显示该文件。 这是一个已知问题: https//issuetracker.google.com/issues/36956498

来源: https//stackoverflow.com/a/20413888/2552811

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM