簡體   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