现在的位置: 首页 > 综合 > 正文

android 文件夹浏览器编码实现

2013年08月02日 ⁄ 综合 ⁄ 共 1732字 ⁄ 字号 评论关闭

思路:
获取当前目录下的文件列表,然后显示到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

抱歉!评论已关闭.