DownLoadManager遇到的問題

問題1


問題描述:使用DownLoadManager下載,設(shè)置好下載文件的存放路徑。當我們根據(jù)這個路徑去讀取文件的時候,發(fā)現(xiàn)讀不到這個文件。

例如:

設(shè)置文件的下載路徑(Environment.DIRECTORY_DOWNLOADS):

request.setDestinationInExternalFilesDir(this, Environment.DIRECTORY_DOWNLOADS,GetFileName(url));

設(shè)置文件的讀取路徑:File file =newFile(Environment.DIRECTORY_DOWNLOADS);

結(jié)果:讀取不到已存在的文件。

造成讀不到這個文件的原因是:文件下載后的存放路徑與讀取這個文件的路徑不一致。

雖然我們看似寫了同一個路徑,但你所寫的并不是絕對路徑。這個路徑的前面部分是不同的。接下來細細探討下。

其實:

request.setDestinationInExternalFilesDir(x, URIForDM,x);這個方法的默認路徑是

mnt/sdcard/Android/data/(packageName)/files+URIForDM

所以我們在使用File file =newFile(URIForDM);是不對的。

正確的讀取路徑是在設(shè)置的下載路徑前加上默認的路徑

完整的讀取路徑為:File file =newFile(mnt/sdcard/Android/data/(packageName)/files+URIForDM);


我在程序里面將默認的前部分路徑獲取寫成如下:

Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+"Android"+File.separator+"data"+File.separator+context.getPackageName()+File.separator+"files";

這個路徑加上你設(shè)置的URIForDM就可以獲取DownLoadManager下載的文件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,533評論 19 139
  • 說明本次redis集群安裝在rhel6.8 64位機器上,redis版本為3.2.8,redis的gem文件版本為...
    讀或?qū)?/span>閱讀 15,615評論 3 9
  • Android開發(fā)中,離不開對文件的操作。本文首先介紹了使用java對文件進行基本的讀寫操作,而后介紹了A...
    baolvlv閱讀 12,202評論 0 5
  • 前言: 現(xiàn)在很多it公司都有做網(wǎng)絡(luò)免費電話的意愿,而老牌開源項目Linphone遵從sip協(xié)議是很多猿們的首選,我...
    林天佐閱讀 3,265評論 26 5
  • 考研單詞150個 ? 考研課程 ? 為毛大家喜歡趕在飯點來拜年,而且客人已經(jīng)吃過飯,(?...
    MickeyMinnie閱讀 137評論 0 0

友情鏈接更多精彩內(nèi)容