Android 文件管理器通用类 FileUtil
1.整体分析
1.1.源代码如下,可以直接Copy。
public class FileUtil {
private FileUtil() {
}
//****系统文件目录**********************************************************************************************
/**
* @return 程序系统文件目录
*/
public static String getFileDir(Context context) {
return String.valueOf(context.getFilesDir());
}
/**
* @param context 上下文
* @param customPath 自定义路径
* @return 程序系统文件目录绝对路径
*/
public static String getFileDir(Context context, String customPath) {
String path = context.getFilesDir() + formatPath(customPath);
mkdir(path);
return path;
}
//****系统缓存目录**********************************************************************************************
/**
* @return 程序系统缓存目录
*/
public static String getCacheDir(Context context) {
return String.valueOf(context.getCacheDir());
}
/**
* @param context 上下文
* @param customPath 自定义路径
* @return 程序系统缓存目录
*/
public static String getCacheDir(Context context, String customPath) {
String path = context.getCacheDir() + formatPath(customPath);
mkdir(path);
return path;
}
//****Sdcard文件目录**********************************************************************************************
/**
* @return 内存卡文件目录
*/
public static String getExternalFileDir(Context context) {
return String.valueOf(context.getExternalFilesDir(""));
}
/**
* @param context 上下文
* @param customPath 自定义路径
* @return 内存卡文件目录
*/
public static String getExternalFileDir(Context context, String customPath) {
String path = context.getExternalFilesDir("") + formatPath(customPath);
mkdir(path);
return path;
}
//****Sdcard缓存目录**********************************************************************************************
/**
* @return 内存卡缓存目录
*/
public static String getExternalCacheDir(Context context) {
return String.valueOf(context.getExternalCacheDir());
}
/**
* @param context 上下文
* @param customPath 自定义路径
* @return 内存卡缓存目录
*/
public static String getExternalCacheDir(Context context, String customPath) {
String path = context.getExternalCacheDir() + formatPath(customPath);
mkdir(path);
return path;
}
//****公共文件夹**********************************************************************************************
/**
* @return 公共下载文件夹
*/
public static String getPublicDownloadDir() {
return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath();
}
//****相关工具**********************************************************************************************
/**
* 创建文件夹
*
* @param DirPath 文件夹路径
*/
public static void mkdir(String DirPath) {
File file = new File(DirPath);
if (!(file.exists() && file.isDirectory())) {
file.mkdirs();
}
}
/**
* 格式化文件路径
* 示例: 传入 "sloop" "/sloop" "sloop/" "/sloop/"
* 返回 "/sloop"
*/
private static String formatPath(String path) {
if (!path.startsWith("/"))
path = "/" + path;
while (path.endsWith("/"))
path = new String(path.toCharArray(), 0, path.length() - 1);
return path;
}
/**
* @return 存储卡是否挂载(存在)
*/
public static boolean isMountSdcard() {
String status = Environment.getExternalStorageState();
return status.equals(Environment.MEDIA_MOUNTED);
}
}
1.2.主要方法。
- 获取系统文件目录
- 获取系统文件目录+新建自定义路径
- 获取系统缓存目录
- 获取系统缓存目录+新建自定义路径
- 获取外部存储文件目录
- 获取外部存储文件目录+新建自定义路径
- 获取外部存储缓存文件目录
- 获取外部存储缓存文件目录+新建自定义路径
- 获取公共下载文件夹
- 创建文件夹
- 格式化文件路径
- 判断外部存储是否存在
2.局部分析
2.1.构造函数

空的构造函数。
2.2.系统文件目录

这里系统文件目录,调用了context.getFileDir()直接获取到。
下面有一个formatPath(传一个自定义参数)

传入一个字符串,然后转化为正确格式即可。
然后是新建文件夹mkdir(一个路径参数)

判断文件如果不存在,且文件不是一个路径,然后在创建文件夹。
2.3.获取系统缓存目录

方法基本一致,调用context.getCacheDir()获取。
2.4.获取外部存储文件目录

调用了context.getExternalFilesDir("")即可获取。
2.5.获取外部存储缓存目录。

同样调用了context.getExternalCacheDir()方法获取。
2.6.获取公共下载文件

直接获取系统的下载文件夹。
2.7.判断是否存在外部存储(现在手机基本都有)

3.简单用法
3.1.用法很简单
例如有个要显示缓存大小

这里用到了这个通用类来获取外部存储器的缓存地址。
3.2.其他用法类似的。
Android 文件管理器通用类 FileUtil的更多相关文章
- android文件管理器源码、斗鱼直播源码、企业级erp源码等
Android精选源码 文件清理管理器 自定义水平带数字的进度条以及自定义圆形带数字的进度条 利用sectionedRecyclerViewAdapter实现分组列表的recyclerView源码 流 ...
- Android 异步请求通用类
package com.example.demo1; import java.util.EventListener; public interface MyAsyncTaskListener exte ...
- Android Html处理器通用类 HtmlUtil
1.整体分析 1.1.首先看一下源代码,可以直接Copy. public class HtmlUtil { /** * 获取 html 中的纯文本 */ public static String Ht ...
- Android Url相关工具 通用类UrlUtil
1.整体分析 1.1.源代码查看,可以直接Copy. public class UrlUtil { public static boolean isUrlPrefix(String url) { re ...
- XC文件管理器(Android应用)
XC文件管理器,是基于Android4.4开发的一个方便易用的文件管理器,具有文件的目录管理和文件的管理,主要包括文件的新建.删除.重命名.复制,移动剪切以及文件详情查看等文件和目录的功能,同时支持文 ...
- Android中调用文件管理器并返回选中文件的路径
实际项目中经常需要调用文件管理器,选择下载路径或者上传的本地文件路径.今天就给大家做个demo示范该功能的实现过程. 一.实现效果预览 以下为三星S6的样机测试效果,当然不同手机调用后的效果不一样. ...
- 解决Android Studio 将String类型保存为.txt文件,按下button跳转到文件管理器(解决了保存txt文件到文件管理后,手机打开是乱码的问题)
不知道为什么保存文件后之前打开一直都OK,就突然打开看到变成乱码了,最后解决了 关键:outStream.write(finalContent.getBytes("gbk")); ...
- Android studio3.0打开Device File Explore(文件管理器)的方法(图文教程)
Android studio3.0打开Device File Explore(文件管理器)的方法(图文教程) 看到网上AS3.0新增加的查看手机文件的新功能,全部都是转载的,没有几个人心细的把如何打开 ...
- Android 应用开发实例之文件管理器
2013-07-02 10.2 文件管理器 能够浏览和管理手机/存储卡上的文件和文件夹,包括重命名.删除.新建.复制.粘帖等文件操作. 由于需要浏览大量的文件/文件夹,所以需要使用一个ListView ...
随机推荐
- Design Pattern ->Prototype
Layering & Contract Philosophy With additional indirection Prototype The example code is as foll ...
- android 学习之ViewDragHelper
ViewDragHelper是用来移动ViewGroup中子View的,之前写View的移动都是通过scrollTo来实现,但是它移动的是VIew中的内容,ViewGroup中的所有的子View都会移 ...
- ansible使用1-安装&配置
参考文档 http://docs.ansible.com https://github.com/leucos/ansible-tuto 控制机安装 ansible控制机通过ssh控制远程主机,远程主机 ...
- MHA 日常维护命令集
MHA 日常维护命令集 1.查看ssh登陆是否成功 masterha_check_ssh --global_conf=/etc/masterha/masterha_default.conf --con ...
- framework7对日历的一些效果处理
现在的要求是日历中要区分已打卡和未打卡的显示,并且当月只显示当月的日历状态,其他月份不显示状态,并且打卡的日期不能大于当日 实现代码(精确到天): HTML: <div class=" ...
- cocosBuilder生成cbbi文件,绑定到cocos2d-x
cocosBuilder生成cbbi文件,绑定到cocos2d-x 分类: Cocos2D-X2013-04-27 20:37 4651人阅读 评论(6) 收藏 举报 今天弄了一天.记录一下. 首 ...
- 【转】Android UI开发第二十四篇——Action Bar
Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式.在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为acti ...
- Java 执行系统命令工具类(commons-exec)
依赖jar <!-- 可以在JVM中可靠地执行外部进程的库. --> <dependency> <groupId>org.apache.commons</gr ...
- R 多线程和多节点并行计算
一:R本身是单线程的,如何让其多线程跑起来,提高运算速度? 用Parallel和foreach包玩转并行计算 看完上面这篇文章就会了.说白了,要加载parallel包,再改写一下自己的代码就ok了. ...
- Python-三元运算符和lambda表达式
一.三元运算符 #当满足条件1时,res=值1:否则res=值2 res = 值1 if 条件1 else 值2 举例说明: res=10 #简单的if else语句 if abs(res)>0 ...