我最初使用的方法是file.delete()方法,日誌列印一致的返回false,後來一直在試使用contentresolver.delete(),卻還是無法刪除檔案,只能刪除contentprovider**庫的資料,再次掃瞄又會出現。顯然錯誤的方向讓我浪費了好長時間。立馬開啟了android中文網瞧瞧8.0的官方文件,我找到了這個
這個框架的描述很直白,很快的找到了可以刪除的方法。
框架和contentprovider類似,如果需要提供介面給其他程式來呼叫則繼承documentsprovider,但是本文只將演示作為客戶端刪除檔案。
客戶端應用
一種自定義應用,它呼叫 action_open_document 或 action_create_document intent 並接收文件提供程式返回的檔案;上乙個官方的框架圖:
看下**實現,首先我們需要申請許可權:
private
static
final
int read_request_code = 42;
public
void
performfilesearch()
@override
public
void
onactivityresult(int requestcode, int resultcode,
intent resultdata) }}
private
static
final
int read_request_code = 42;
public
void
performfilesearch()
@override
public
void
onactivityresult(int requestcode, int resultcode,
intent resultdata)
//這裡還需要乙個id,從uri中獲取,如何取得由你實現吧,
//string rootid = "0c3d-8650";
//我們現在得到的uri還無法刪除檔案,需要轉為下一級document的才可以
//content:
uri children = documentscontract.buildchilddocumentsuriusingtree(uri,
documentscontract.gettreedocumentid(uri));
//這裡假設位址如下 /storage/0c3d-8650/prelude.***
//我們最終需要的位址
string filepath = "/prelude.***";
uri delfileuri = documentscontract.builddocumenturiusingtree(children,
rootid+":"+filepath)
//到這裡就可以刪除檔案了
boolean result = documentscontract.deletedocument(contentresolver, delfileuri);
//...}}
}//上傳顯示真的很大,所以就不上傳了
android開發 SD卡儲存
新手筆記,參考謹慎 關於sd卡的存讀刪,網上有很多例子。但是一般都是以儲存.txt檔案為例,當要將 檔案存入sd卡該如何呢?public class sdcarddata public static file createfile string path,string filename catch ...
Android讀取SD卡內容
在做開發的時候遇到乙個問題就是需要為使用者資料做快取特別是檔案快取,下面就來看看sd卡的讀寫操作 android讀取手機sd卡內容 所需許可權 判斷是否掛載 if environment.getexternalstoragestate equals environment.media mounted...
Android寫SD卡的坑
簡簡單單的在sd卡建立資料夾 在不同手機卻失敗了。總結一下 1 三星note4 版本4.4.4 完全不允許3方應用在sd卡根目錄寫,必須要去getexternalfilesdir這裡,也就是 sd卡 android 包名 files 2 android targetsdkversion 23 不要設...