android浏览器 sd卡,SD卡浏览器实例

SD卡大家都不陌生,我们在写程序时也会将一些缓存文件,临时文件写入到SD卡上,今天就简单来实现一个SD卡浏览器,用来查看SD卡中的文件。

读写权限

如果要操作SD卡的内容,首先需要赋予权限,否则是否对SD卡进行读写的。

代码:

加载SD卡内容

这里是通过一个列表来展示出SD卡中所有的文件,如图所示

2cbbbef12d9cc0bb39848bb8ded451c2.png

读取代码:

// 分类并排序

File[] temp = directory.listFiles();

ArrayList tempFolder = new ArrayList();

ArrayList tempFile = new ArrayList();

for (int i = 0; i < temp.length; i++) {

File file = temp[i];

if (file.isDirectory()) {

tempFolder.add(file);

} else if (file.isFile()) {

tempFile.add(file);

}

}

// 对List进行排序

Comparator comparator = new MyComparator();

Collections.sort(tempFolder, comparator);

Collections.sort(tempFile, comparator);

这里实现了一个比较器,用来排序文件,这里是按照名字排序。

删除和重命名

还提供了删除文件和重命名的功能,在一个文件上长按就会弹出如下界面:

620af7548e66ba07b830e0eda0c08146.png

点击重命名,会弹出对话框输入新的名字:

3c3a1060b92d96f8f377443f76e88411.png

代码实现:

listView.setOnItemLongClickListener(new OnItemLongClickListener() {

@Override

public boolean onItemLongClick(AdapterView> arg0, View arg1, int arg2, long arg3) {

File clickFile = datas[arg2];

longFile = clickFile;

if (clickFile.isDirectory()) {

menus = new String[] { "删除", "重命名" };

Intent openMenu = new Intent(GetSDTreeActivity.this, MenuActivity.class);

openMenu.putExtra("menus", menus);

startActivityForResult(openMenu, 1);

} else {

menus = new String[] { "删除", "重命名" };

Intent openMenu = new Intent(GetSDTreeActivity.this, MenuActivity.class);

openMenu.putExtra("menus", menus);

startActivityForResult(openMenu, 2);

}

return false;

}

});

新建和退出

同样也提供了新建文件和退出程序的功能,如图:

b5bccafc524d1d34363ffbb8428d282b.png

代码实现:

@Override

public boolean onCreateOptionsMenu(Menu menu) {

menu.add("新建");

menu.add("退出");

return super.onCreateOptionsMenu(menu);

}

@Override

public boolean onMenuItemSelected(int featureId, MenuItem item) {

if (item.getTitle().toString().equals("退出")) {

GetSDTreeActivity.this.finish();

System.exit(1);

} else if (item.getTitle().toString().equals("新建")) {

String name = System.currentTimeMillis() + "";

File file = new File(nowFile.getPath() + "/" + name.substring(name.length() - 5));

try {

boolean finish = file.createNewFile();

loadFiles(nowFile);

if (finish) {

Toast.makeText(this, "随机文件已生成!", Toast.LENGTH_SHORT).show();

}

} catch (IOException e) {

e.printStackTrace();

}

}

return super.onMenuItemSelected(featureId, item);

}

源码下载:点击下载

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值