2015-09-28 50 views
0

經測試,在模擬器不同的價值

起初我做這種形式的目錄:

  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

檢查我的代碼,但有-不誤。

回答

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()); 
+0

我在此表單中使用並且正確:request.setDestinationInExternalPublicDir(「SubFolderName」,「FileName」); - 沒有'Environment.DIRECTORY _....' – Saeid

0

您正在使用setDestinationInExternalPublicDir(),因爲我可以讀here它已經添加了外部根目錄,因此您只需要指定目錄類型,子路徑和文件名。

例子:

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

希望我不是錯了。