&get; setDestination'的不同价值目录

时间:2015-09-28 10:33:19

标签: android android-download-manager

在模拟器中测试

首先,我以这种形式创建一个目录:

            File root = android.os.Environment.getExternalStorageDirectory();
            File dir = new File(root.getAbsolutePath() + "/" + "SubFolderName");
            if (!dir.exists()) {
                dir.mkdirs();

在此路径中创建目录:/storage/emulated/0/SubFolderName

现在,我需要将此路径用于下载文件,因此请添加以下代码:

 DownloadManager.Request request = new DownloadManager.Request(uri);
 request.setDestinationInExternalPublicDir(root.getAbsolutePath() + "/" + "SubFolderName","FileName");

返回此路径:/storage/emulated/0/storage/emulated/0/SubFolderName/

在此之前尝试:

 request.setDestinationInExternalFilesDir(getActivity(), root.getAbsolutePath() + "/" + "SubFolderName","FileName");

重复此部分:storage/emulated/0

我检查了我的代码,但没有错误。

2 个答案:

答案 0 :(得分:0)

您正在使用setDestinationInExternalPublicDir(),因为我可以阅读here它已经添加了外部根目录,因此您只需要指定目录类型,子路径和文件名。

示例:

request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOCUMENTS,"SubFolderName/FileName");

希望我没错。

答案 1 :(得分:0)

您没有指定外部存储中的哪个目录。

根据您的存储情况,您可以使用多个目录,例如"下载","视频"

您可以像下面这样使用下载目录:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).mkdirs();

Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_DOWNLOADS + "/" + "SubFolderName/" + mTedListModel.get(position).getTitle()).mkdirs();

然后使用请求管理器设置目的地为

  .setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, + "SubFolderName/" + mTedListModel.get(position).getTitle());