Android怎么实现文件资源管理器
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇"Android怎么实现文件资源管理器"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这
千家信息网最后更新 2026年11月04日Android怎么实现文件资源管理器
这篇"Android怎么实现文件资源管理器"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Android怎么实现文件资源管理器"文章吧。
先做需求分析(实现的功能):
1.ListView开始显示sdcard目录下的子目录和文件。
2.点击文件,Toast显示"点击的是文件"
3.点击目录,进入子目录,显示子目录下的子目录和文件。
4.back键回退到上层目录。
5.异常情况处理:
5.1如果sdcard没有插入,则不显示列表,且提示用户应该插入sdcard后操作
5.2不允许进入sdcard的上层目录
下面开始实现:
布局有两个:
1.主布局:file_list.xml
布局很简单,就是放置了一个ListView控件,这里要注意的是,ListView标签下不能再放入其他的子控件。内容是通过子布局和Adapter来显示的。
2.ListView中的子布局file_list_item.xml
子布局也很简单,就是在水平方向上左边显示一个图标,用来显示文件夹或文件图标,右边显示文件名。
3.Activity代码(功能点写在注释中)
public class FileExplorerActivity extends Activity { //Adapter中ICON和Filename键值对常量 private static final String ICON = "icon"; private static final String FILENAME = "filename"; private TextView currentTv;//ListView上显示当前路径的TextView private ListView fileLv;//文件列表显示的ListView SimpleAdapter adapter;//适配器 private List> data;//填充的数据 private File root;//文件夹根节点 private File[] currentFiles; //根节点下的所有文件(包括文件夹) private File currentPath;//记录当前节点 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_file_explorer); currentTv = (TextView)findViewById(R.id.currentTv); fileLv = (ListView)findViewById(R.id.fileLv); //得到根节点root -->/mnt/sdcard root = getFileSystemRoot(); //得到第一屏的信息 if(root != null){ //从/mnt/sdcard下得到文件列表 data = getFileListFromSdcard(root); }else{ //如果没有挂载sdcard,则提示用户 data = new ArrayList>(); HashMap map = new HashMap(); map.put(ICON, R.drawable.none); map.put(FILENAME, "逗我玩啊,插卡啊"); data.add(map); } //创建Adapater adapter = new SimpleAdapter( this, data, R.layout.file_list_item, new String[]{ICON, FILENAME}, new int[]{R.id.icon, R.id.filename}); fileLv.setAdapter(adapter); //绑定事件 fileLv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView> parent, View view, int position, long id) { //点击listview 项时,如果是目录,则进入下一层次,如果是文件,不做处理 File currentPosFile = currentFiles[position]; if(currentPosFile.isDirectory()){ getFileListFromSdcard(currentPosFile); }else{ Toast.makeText(FileExplorerActivity.this, "您点击的是文件夹", Toast.LENGTH_LONG).show(); } } }); } /** * 拦截back键返回 * @return */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(KeyEvent.KEYCODE_BACK == keyCode){ File parentFile = currentPath.getParentFile(); //不能超过最顶层 try { if(parentFile.getCanonicalPath().toString().equals("/mnt")){ Toast.makeText(this, "别按了,到家了", Toast.LENGTH_LONG).show(); return true; }else{ getFileListFromSdcard(parentFile); } } catch (IOException e) { e.printStackTrace(); } } return super.onKeyDown(keyCode, event); } private File getFileSystemRoot() { //首先得到Sd卡是否加载了 if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){ //得到sd卡路径 root --> /mnt/sdcard root = Environment.getExternalStorageDirectory(); }else{ Toast.makeText(this, "逗我玩啊,插卡啊", Toast.LENGTH_LONG).show(); } return root; } /** * 得到Sdcard中的文件列表 * @return */ private List> getFileListFromSdcard(File root) { try { currentPath = root; currentTv.setText(root.getCanonicalPath().toString()); } catch (IOException e) { e.printStackTrace(); } List> list = new ArrayList>(); currentFiles = root.listFiles();//列出当前目录下的所有文件和目录 for(File f : currentFiles){ HashMap map = new HashMap(); String fileName = f.getName(); int icon; if(f.isDirectory()){ icon = R.drawable.dir; map.put(ICON, icon); }else if(f.isFile()){ icon = R.drawable.file; map.put(ICON, icon); } map.put(FILENAME, fileName); list.add(map); } //把原来的data list清空,然后把list放进去,再通知adapter if(data != null){ data.clear(); data.addAll(list); adapter.notifyDataSetChanged(); } return list; }} 运行效果:

功能展望:
以上代码是通过精简功能达到的,如果要增加以下功能也是相当之简单的:
1.文件夹和文件的删除功能
2.文件夹和文件的重命名功能
3.文件的分类调用App查看功能
4.文件详细信息显示功能
以上就是关于"Android怎么实现文件资源管理器"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
文件
功能
目录
内容
布局
文件夹
子目
子目录
节点
资源
资源管理
管理
就是
上层
代码
信息
图标
控件
文章
用户
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
小米移动互联网科技园
伟宏互联网科技
科技平台互联网
互联网属科技
互联网扶贫科技
北京互联网科技有限公司
万易互联网科技
互联网 卓越科技
深圳齐家互联网科技
无线互联网科技
互联网科技类展会
苏州铭阳互联网科技有限公司
健康食品互联网创新科技园项目
工业互联网等科技实现智能化赋能
山东有哪些互联网科技公司
中天科技中国工业互联网
互联网风格科技公司名称
神州科技互联网有限公司
普陀区互联网教育科技管理办法
10位科技互联网大佬
互联网新科技
美国互联网科技巨头监管
四川狮子座互联网科技
彤创互联网科技有限公司
花神(南京)互联网科技有限公司
移动互联网年度科技创新
广州市恰铎互联网科技有限公司
互联网科技创新的路径
互联网科技接地气
山东亿川互联网科技有限责任公司