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 ...
 
随机推荐
- PHP underlying structure
			
http://www.phpinternalsbook.com/classes_objects/magic_interfaces_comparable.html
 - SpringBoot常用应用程序属性
			
参考地址: https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.h ...
 - cocos2d-x滑动翻页,多出一点偏移量。
			
cocos2d-x 2.2.3版本. 控件:ccscrollView 实现滑动翻页:创建出来的cell横向移动时会有一个惯性滑动,导致View页面不能居中.通过延迟重新设定的方式解决.
 - python数据类型和数据运算
			
数字 整型 包括正整数和负整数,和数学的表示方法一样.如:1.100.8008.-12等. 浮点型 浮点数字也称为小数,如果按照科学计数法表示时,小数点的位置是可变的.如:1.23x109==12.3 ...
 - [RDLC]心得整理(一)
			
2014年在做项目的时候, 过用过RDLC, 之后便在没有使用过了. 最近又有项目使用rdlc, 感觉有些陌生,然后重新阅读了以前的笔记,想做一下整理. 常见问题: 1. 为什么rdlc报表出来的pd ...
 - 如何通过C#实现网页信息采集的方法总结
			
Internet上有着极其庞大的资源信息,各行各业的信息无所不有.网页的信息搜集就是获取网页的数据,然后通过程序分析,将有用的数据提取分离出来.搜索引擎工作的一部分就是网页数据抽取.比如编制程序抽取新 ...
 - 西门子 SINAMICS S120 Web server 用户名和默认密码
			
sinamics web server可以通过浏览器查看驱动器故障等信息,是一个比较方便的辅助工具. 1. 一般用户 SINAMICS 密码 无 2. 管理员 Administrator 密码 Adm ...
 - 字符串反转,栈模拟(ZOJ1151)
			
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=151 这里可以用栈模拟,也可以用STL,reverse();函数. 但 ...
 - linux命令之sed命令
			
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令 ...
 - Spring boot 项目导出可执行jar
			
配置文件中添加插件 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>s ...