使用ContentResolver查詢SD卡中特定的檔案
官方定義這個類的主要作用就是,這個類提供了app訪問內容模型,直譯就是內容解析者的意思,Android通過ContentProvider來實現應用程式間的內容共享,ContentResolver就是來對系統或者我們自定義的ContentProvider進行互動,通常我們用這個類訪問的是系統的一些資料,比如 獲取通訊錄,多媒體檔案,以及你想獲取的特定的檔案。
用法:通過getContentResolver()得到ContentResolver物件
然後呼叫它的query(uri,projection, selection, selectionArgs, sortOrder)方法來查詢,其實感覺和查詢資料庫操作差不多
首先uri代表你要查詢檔案的uri,比如音訊(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI)
視訊(MediaStore.Video.Media.EXTERNAL_CONTENT_URI)
通訊錄(ContactsContract.Contacts.CONTENT_URI)
如果你這裡想要查詢特定檔案的話,或者你不知道你要查詢的uri是什麼,Android提供了一個
MediaStore.Files.getContentUri("str"),就是這個Files類,原始碼解釋說這個就是呼叫(text,html等等這些檔案的)
projection:查詢的列,不過濾填null
selection:相當於資料庫的 where引數 不過濾填null
selectionArgs:如果selection中有?,這裡可以填寫實際值來代替? 沒有填null
sortOrder:查詢的結果按照什麼來排序 不過濾填null
query方法返回一個Cursor,然後進行解析,
最近正好在做一個需要查詢記憶體卡中所有txt檔案的東西,剛開始想的是使用遞迴遍歷,因為我是遍歷一個資料夾重新整理一次ui,然後導致ui重新整理太快,經常會拋
The content of the adapter has changed but ListView did not receive a notification. 這個異常,然後感覺還是老實的用系統提供的方法吧
貼一個我查詢sd卡中txt檔案的程式碼
ContentResolver resolver = this.getContentResolver();
//txt mime_type = text/plain
Cursor cursor = resolver.query(MediaStore.Files.getContentUri("external"),null,"mime_type=\"text/plain\"", null, null);
if (cursor != null){
while (cursor.moveToNext()){
String title = cursor.getString(cursor.getColumnIndex(MediaStore.Files.FileColumns.TITLE));
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Files.FileColumns.DATA));
int fileLength = cursor.getInt(cursor.getColumnIndex(MediaStore.Files.FileColumns.SIZE));
//這裡新增自己想要進行的操作可以了
}
}
相關文章
- 查詢含特定字串的檔案 (轉)字串
- arduino使用SD卡模組以及檢查SD卡資訊UISD卡
- sd卡中的資料夾刪除了怎麼恢復,SD卡刪除的檔案如何恢復SD卡
- Android--手持PDA讀取SD卡中檔案AndroidSD卡
- sd卡刪除的檔案如何恢復SD卡
- 播放SD卡上全部音訊檔案SD卡音訊
- 使用 mlocate 查詢檔案
- 【Android APK】解析SD卡上的APK檔案AndroidAPKSD卡
- 如何從壞掉的SD卡恢復檔案SD卡
- 查詢jar中的pom檔案JAR
- Android向SD卡和ROM寫檔案AndroidSD卡
- 01:查詢特定的值
- 查詢檔案中的控制字元(轉)字元
- 如何使用Rust查詢目錄中的所有 txt 檔案?Rust
- 在Linux中,如何使用grep命令查詢檔案中的內容?Linux
- 在檔案上使用 SQL 查詢的示例SQL
- 使用 lsof 查詢開啟的檔案(轉)
- Android開發之SD卡上檔案操作 (轉)AndroidSD卡
- Linux 某個目錄下查詢檔案大小並排序(du),特定檔案刪除(find)Linux排序
- mybatis xml 檔案中like模糊查詢MyBatisXML
- 推薦2款檔案系統中查詢檔案的工具
- user_source檢視使用&&查詢包和過程中的特定內容
- 查詢Oracle資料檔案的使用情況Oracle
- 使用 lsof 查詢開啟的檔案 (ibm)IBM
- 檔案查詢命令
- find 查詢檔案
- 查詢大檔案
- 使用sed 命令查詢和替換檔案中的字串的方法總結字串
- 使用 sed 命令查詢和替換檔案中的字串的 16 個示例字串
- Linux中查詢最大檔案的方法有哪些?Linux
- 【Linux命令】在當前目錄下查詢出現特定字串的檔案位置資訊Linux字串
- Unix 下使用 Find 命令查詢需要清理的檔案
- 使用Oracle的外部表查詢警告日誌檔案Oracle
- SD卡中FAT32檔案格式快速入門(圖文詳細介紹)【轉】SD卡
- linux下的find檔案查詢命令與grep檔案內容查詢命令Linux
- Linux 檔案查詢Linux
- linux 查詢檔案Linux
- Unix 檔案查詢命令