Android 按關鍵字或檔案字尾搜尋檔案

2021-07-31 10:52:11 字數 3501 閱讀 5934

查詢的情況分為兩種:關鍵字、檔案型別。

按關鍵字查詢:

private list

searchkeyword(context context, string keyword) ,

mediastore.files.filecolumns.title + " like '%" + keyword + "%'",

null, null);

if (cursor != null)

}cursor.close();

return filelist;

}

**主要通過 contentresolver 對系統資料庫進行查詢。

/**

* query the given uri, returning a over the result set.

* * for best performance, the caller should follow these guidelines:

* *

** @param uri the uri, using the content:// scheme, for the content to

* retrieve.

* @param projection a list of which columns to return. passing null will

* return all columns, which is inefficient.

* @param selection a filter declaring which rows to return, formatted as an

* sql where clause (excluding the where itself). passing null will

* return all rows for the given uri.

* @param selectionargs you may include ?s in selection, which will be

* replaced by the values from selectionargs, in the order that they

* @param sortorder how to order the rows, formatted as an sql order by

* clause (excluding the order by itself). passing null will use the

* default sort order, which may be unordered.

* @return a cursor object, which is positioned before the first entry, or null

* @see cursor

*/public final @nullable cursor query(@requirespermission.read @nonnull uri uri,

@nullable string projection, @nullable string selection,

@nullable string selectionargs, @nullable string sortorder)

projection:你希望查詢到的內容。

selection:查詢條件。

selectionargs:查詢條件裡面如果有?,就把?的值放進這個陣列裡面。

sortorder:排序。

獲取檔名這裡並沒有直接使用 mediastore.files.filecolumns.title,而是使用 mediastore.files.filecolumns.data 獲取到檔案路徑再獲取到檔名。

因為使用 mediastore.files.filecolumns.title 獲取的到檔名沒有檔案格式。

按檔案型別查詢:

private list

searchtype(context context, string type)

}cursor cursor = resolver.query(uri,

new string,

mediastore.files.filecolumns.mime_type + " = '" + t + "'",

null, null);

if (cursor != null)

}cursor.close();

return filelist;

}

通過檔案的字尾獲取mime,然後到資料庫查詢。

mime列表:

/**

* -- mime 列表 --

*/private static final string mimetable =--,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,

};

有乙個小的瑕疵,查詢到的檔案型別,可能不只你需要的,因為不同型別的mime可能相同,大家需要再篩選一下。

還有乙個很重要的問題:剛新建的檔案查詢不到。

這是因為系統的資料庫可能沒有重新整理。這時你就需要手動重新整理資料庫。可以呼叫一下**:

mediascannerconnection.scanfile(context, path, null, null);
path就是要重新整理的路徑陣列啦。具體用法大家自行搜尋吧。

python按關鍵字篩選日誌檔案

最近忙成了狗,五六個專案堆在一起,頭疼的是測試還失驚無神的給我丟來乙個幾十甚至上百m的日誌檔案,動不動就幾十上百萬行,就算是搜尋也看得頭昏眼花的,因此自己花了點時間寫了一段小指令碼去過濾日誌,當然這樣的東西網上應該大把,但是還是想自己搞下,權當學習!usr bin python encoding u...

關鍵字搜尋後描紅

在剛開始學習php的時候,就對搜尋過後的關鍵字描紅感到好奇,但是這幾天在鞏固php基礎的時候,就發現原來這樣的效果實現並不難。按照慣例,首先給大家看看效果圖吧。執行效果圖 資料庫相關 資料庫名是book,只有乙個資料庫表,也是book,模擬了5條資料。name欄位是書名,description欄位是...

進化後的const關鍵字

const修飾的變數是唯讀的,本質還是變數。const修飾的區域性變數在棧上分配空間const修飾的全域性變數在唯讀儲存區分配空間const只在編譯期有用,在執行期無用 a const修飾的變數不是真的常量,它只是告訴編譯器該變數不能出現在賦值符號的左邊。實際上可以用指標改變它的量。b 在一些編譯器...