我想做一個應用程序,將對我的設備進行一些清理工作,我希望它刪除我的Download
目錄中的所有文件。我使用的方法是這樣來刪除這些文件:清除android下載列表
private static void deleteFiles(File path) {
Util.Log("deleting all files underneath " + path.getName());
if(path.exists() && path.isDirectory()) {
File[] files = path.listFiles();
for(int i=0; i<files.length; i++) {
if(files[i].isDirectory()) {
Util.Log(files[i].getName() + " is a dir, being recursive.");
deleteFiles(files[i]);
}else {
Util.Log(files[i].getName() + " is a file, deleting it.");
files[i].delete();
}
}
}
}
這是正常刪除的文件(我與文件管理器驗證,並在PC機插)。但是,如果我在設備上打開股票「下載」應用程序,則所有文件仍然列在那裏。當我點擊一個,我得到一個彈出窗口,顯示「下載的文件沒有找到[再試一次] [刪除]。再次按下try將重新下載文件,按刪除將刪除列表中的條目。有一些廣播或我可以用來告訴這個下載應用程序,我希望它與當前文件系統「刷新」或「同步」,以便它可以識別出這些文件已被刪除。
類似從DCIM
目錄中刪除圖像時,它們仍然會在刪除後出現在圖庫的應用程序中,我能夠廣播MEDIA_MOUNTED意圖,導致圖庫應用程序用當前文件「刷新」(然後正確從Gallery應用程序中刪除了圖片),但MEDIA_MOUNTED似乎沒有影響下載應用程序
有沒有什麼可以根據/sdcard/Download/
目錄中當前存在(或不存在)的文件來告訴下載應用程序我希望它刷新其列表的同一行?
您是否檢查[Downloads]下列出的文件是否存在於['MediaStore'](http://developer.android.com/reference/android/provider/MediaStore.Files.html)中?如果是這樣,我想你應該簡單地刪除從存儲中物理刪除的所有文件的條目。 –
我想知道下載應用程序是否在下載文件夾中的隱藏文件中存儲索引。當然重擊會很髒,但刪除其他所有內容也是如此。 –
下載保存在數據庫中。 'DownloadManager'通過一個'ContentProvider'與那個數據庫交互,不幸的是它不是SDK的一部分。 – CommonsWare