util之文件管理器

本文介绍了自定义的文件管理器的工具类,能力有限,有问题欢迎讨论哈~

背景

最近在做一个文件传输的项目,题目要求做一个文件管理器,可能听上去好像没什么难度,然而宝宝做起来还是有点懵逼的。

本文借鉴了github上MIUI的文件管理器,贴出链接https://github.com/MiCode/FileExplorer

Android的剪切板(ClipboardManager)

先上个最简单的,剪切板功能,这里主要是为了复制获取文件的绝对路径

注意:导包的时候

API 11之前: android.text.ClipboardManager
API 11之后: android.content.ClipboardManager

/**
 * 实现文本复制功能
 * @param content
 */
public static void copy(String content, Context context) {
    // 得到剪贴板管理器
    ClipboardManager cmb = (ClipboardManager) context
    .getSystemService(Context.CLIPBOARD_SERVICE);
    cmb.setText(content.trim());
}

/**
 * 实现粘贴功能
 * 
 * @param context
 * @return
 */
public static String paste(Context context) {
    // 得到剪贴板管理器
    ClipboardManager cmb = (ClipboardManager) context
    .getSystemService(Context.CLIPBOARD_SERVICE);
    return cmb.getText().toString().trim();
}

首先创建一个ClipboardManager对象cmb并将其与系统剪贴板相关联。

之后通过setText(CharSequence text)函数即可将String类型的内容复制到剪贴板。

此外ClipboardManager类还提供有abstract CharSequence getText()函数以及abstract boolean hasText(),分别可以获取剪贴板中的字符串内容以及查询剪贴板当前是否保存有内容。ClipboardManager类有两个版本,这里使用的是从API Level 1就开始被支持的仅能保存字符串的剪贴板管理器,自从Android 3.0(API Level 11)起新版本的ClipboardManager类则支持更多功能。详情请参见官方文档。

文件的复制

讲解一下思路,

  1. 获取文件对象

热评文章