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的更多相关文章

  1. android文件管理器源码、斗鱼直播源码、企业级erp源码等

    Android精选源码 文件清理管理器 自定义水平带数字的进度条以及自定义圆形带数字的进度条 利用sectionedRecyclerViewAdapter实现分组列表的recyclerView源码 流 ...

  2. Android 异步请求通用类

    package com.example.demo1; import java.util.EventListener; public interface MyAsyncTaskListener exte ...

  3. Android Html处理器通用类 HtmlUtil

    1.整体分析 1.1.首先看一下源代码,可以直接Copy. public class HtmlUtil { /** * 获取 html 中的纯文本 */ public static String Ht ...

  4. Android Url相关工具 通用类UrlUtil

    1.整体分析 1.1.源代码查看,可以直接Copy. public class UrlUtil { public static boolean isUrlPrefix(String url) { re ...

  5. XC文件管理器(Android应用)

    XC文件管理器,是基于Android4.4开发的一个方便易用的文件管理器,具有文件的目录管理和文件的管理,主要包括文件的新建.删除.重命名.复制,移动剪切以及文件详情查看等文件和目录的功能,同时支持文 ...

  6. Android中调用文件管理器并返回选中文件的路径

    实际项目中经常需要调用文件管理器,选择下载路径或者上传的本地文件路径.今天就给大家做个demo示范该功能的实现过程. 一.实现效果预览 以下为三星S6的样机测试效果,当然不同手机调用后的效果不一样. ...

  7. 解决Android Studio 将String类型保存为.txt文件,按下button跳转到文件管理器(解决了保存txt文件到文件管理后,手机打开是乱码的问题)

    不知道为什么保存文件后之前打开一直都OK,就突然打开看到变成乱码了,最后解决了 关键:outStream.write(finalContent.getBytes("gbk")); ...

  8. Android studio3.0打开Device File Explore(文件管理器)的方法(图文教程)

    Android studio3.0打开Device File Explore(文件管理器)的方法(图文教程) 看到网上AS3.0新增加的查看手机文件的新功能,全部都是转载的,没有几个人心细的把如何打开 ...

  9. Android 应用开发实例之文件管理器

    2013-07-02 10.2 文件管理器 能够浏览和管理手机/存储卡上的文件和文件夹,包括重命名.删除.新建.复制.粘帖等文件操作. 由于需要浏览大量的文件/文件夹,所以需要使用一个ListView ...

随机推荐

  1. 转:Oracle优化总结

    本文主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了 ORACLE数据库的优化调整方案. 关键词 ORACLE数据库 环境 ...

  2. Struts_ActionWildcard_通配符配置

    使用通配符,将配置量降到最低 不过,一定要遵守“约定由于配置”的原则 struts2.xml <?xml version="1.0" encoding="UTF-8 ...

  3. java集合框架——List

    一.List接口概述 List有个很大的特点就是可以操作角标. 下面开始介绍List接口中相对于Collection接口比较特别的方法.在Collection接口中已经介绍的方法此处就不再赘述. 1. ...

  4. 使用ABAP代码创建S/4HANA里的Sales Order

    下图是使用ABAP代码创建的S/4HANA的Sales Order的截图: 其中红色区域的值是我代码里硬编码的,而蓝色是函数SD_SALESDOCUMENT_CREATE自己创建的. 来看下代码: D ...

  5. CoreData的学习

    第一步:创建项目是勾选coredata,当然创建的时候没有勾选,之后还可以手动生产, 然后:创建数据库模型,及为其添加模型的属性. 然后生成模型文件: 注意⚠️:首先设置为Manual/None  不 ...

  6. 2017.10.10 java中的继承与多态(重载与重写的区别)

    1. 类的继承 继承是面向对象编程技术的主要特征之一,也是实现软件复用的重要手段,使用继承特性子类(subclass) 可以继承父类(superclass)中private方法和属性,继承的目的是使程 ...

  7. [ difflib] simple1.py

    #!/usr/bin/env python # _*_ coding:utf-8 _*_ import difflib text1 = """text1: # 定义字符串 ...

  8. 遍历ResultSet,行列要从1开始

    为什么遍历ResultSet,行列要从1开始. 因为Resultset的第一行的第一列都是空的,要用rs.next()到第一行才能进行读取. Statement stmt=null;  ResultS ...

  9. Thinkphp 5 使用DOMDocument

    每一个载入浏览器都会生成一个 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问.Document 对象是 Window 对象的一部分. 我们项目 ...

  10. matlab linux下无界面运行

    今日做吸引域的仿真,由于需要遍历100*100*100的空间,需要的时间比较长,发现程序没运行一段时间,就会出现Out of memory的错误,而且出错的部分在于截取figure内部图片的部分. 开 ...