如何从Android默认下载管理器下载具有实际文件名的文件?

时间:2015-03-23 13:23:03

标签: android mysql

我已经制作了一个Android应用程序,可以在单击ListView歌曲时下载mp3歌曲。我已经使用了这个

request.setDestinationInExternalFilesDir(this, Environment.DIRECTORY_DOWNLOADS,"MySong.mp3");

但我的歌曲不时从mysql数据库更新。当我使用上述方法时,所有歌曲的下载文件名为 MySong.mp3

如果我避免使用上述方法,则文件会以实际文件名下载,但下载完成后会立即删除。有解决方案吗?

2 个答案:

答案 0 :(得分:0)

所以..这就是我这样做的方式,我相信这对你有帮助。

//define the path of your file location.
String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
                +File.separator + "FOLDER_NAME" + File.separator + fileName;

//create the new file.
final File saveFile = new File(path);

//make all the directory structures needed if the location doesn't exist.
File parentDest = saveFile.getParentFile();
        if (!parentDest.exists()) {
            parentDest.mkdirs(); 
        }

设置完成后,您必须确保为DownloadManager提供此文件的确切路径。

request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,
                    File.separator + "FOLDER_NAME" + File.separator + fileName);

希望这有帮助, JozeRi

答案 1 :(得分:0)

通过评论中提供的链接我已经遵循了这个并且它有效。感谢@CommonsWare链接

String url = "www.somedownloalink.com/some-song.mp3";

String filename = url.substring(url.lastIndexOf('/') + 1);

        request.setDestinationInExternalFilesDir(this, Environment.DIRECTORY_DOWNLOADS,filename);