[英]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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.