android 文件夾瀏覽器編碼實現

思路:
獲取當前目錄下的文件列表,然後顯示到listview上面,當點擊某個文件夾,則重新加載listview的內容爲該文件夾下的文件列表,如果點擊文件,則選擇打開文件方式打開文件。


步驟一:獲取目錄下的文件列表:
// 獲取路徑path下的所有文件信息
public ArrayList<HashMap<String, Object>> getFilesList(File file) {
if (file == null) {
Print("The file (" + file + ") is not exist!");
return null;
}
File[] files = file.listFiles();
if (files == null) {
Print("The files under dir(" + file.getAbsolutePath()
+ ") is not null!");
return null;
}
ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < files.length; i++) {
//判斷是否該顯示該文件,設置了是否顯示隱藏文件開關
if (isDisplay(files[i])) {
//目錄展示的信息:文件名,文件個數,創建時間
if (files[i].isDirectory()) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put(IS_DIR, true);
map.put(FILE, files[i]);
map.put(IMAGE, R.drawable.folder);
map.put(TITLE, files[i].getName());
if (files[i].listFiles() == null)
map.put(COUNT, "(" + 0 + ")");
else
map.put(COUNT, "(" + getDirectoryCount(files[i]) + ")");
map.put(TIME, new Date(files[i].lastModified()));
map.put(IS_CHECKED, false);
listItem.add(map);
//文件展示的信息:文件名,創建時間,文件大小
} else {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put(IS_DIR, false);
map.put(FILE, files[i]);
Bitmap bmp = getThumbnail(files[i].getAbsolutePath());
if (bmp == null)
map.put(IMAGE, R.drawable.file);
else
map.put(IMAGE, bmp);
map.put(TITLE, files[i].getName());
map.put(COUNT, "");
map.put(TIME, new Date(files[i].lastModified()));
try {
long size = new FileInputStream(files[i]).available();
map.put(SIZE, size);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
map.put(IS_CHECKED, false);
listItem.add(map);
}
}
}
return listItem;
}
步驟二:當選中一個listview中文件的radio button,則出現:刪除,複製,剪切,發送,全選
步驟三:當長按一個listview中的文件,出現菜單:複製,剪切,發送,重命名,刪除,詳情。
步驟四:按菜單鍵時,出現:全選,排序,新建文件夾,顯示點文件和隱藏文件,刷新
需求基本和小米系統自帶的文件夾瀏覽器一樣
源碼下載:http://download.csdn.net/detail/ssuchange/5972915


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章