android根據uri或檔案絕對路徑獲取檔案基本資訊
阿新 • • 發佈:2019-01-22
//有需求,於是研究一下
在檔案讀取操作中,很容易能從回撥intent傳遞的資料中獲取檔案uri,從而通過uri獲取檔案絕對路徑,
Uri uri = intent.getDataString();
讀取到uri後,如果檔案為圖片,則可通過
String[] proj = { MediaColumns.DATA };
// 好像是android多媒體資料庫的封裝介面,具體的看Android文件
Cursor cursor = managedQuery(originalUri, proj, null, null, null);
// 按我個人理解 這個是獲得使用者選擇的圖片的索引值
int column_index = cursor.getColumnIndexOrThrow(MediaColumns.DATA
// 將游標移至開頭 ,這個很重要,不小心很容易引起越界
cursor.moveToFirst();
// 最後根據索引值獲取圖片路徑
String path = cursor.getString(column_index);
如若uri為檔案,可通過
String path = uri.substring(7);(檔案起頭為:file:///)
獲取。
繼而可通過
//獲取檔名
String name = path.substring(path.lastIndexOf("/") + 1,path.length());
//獲取檔案大小
File f = new File(path.substring(7));
long size = f.length();
來獲取檔案基本資訊//學習所得,記錄一下,有所錯漏,以後再改