Skip to content

Android文件管理类,包括打开不同后缀文件,创建文件/目录,获取文件/目录大小,复制文件,读取写入文件等。注意:需要添加三个权限 WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGE、MOUNT_UNMOUNT_FILESYSTEMS。

Notifications You must be signed in to change notification settings

appreturn/ZFile

Repository files navigation

ZFile

Android文件管理类,包括打开不同后缀文件,创建文件/目录,获取文件/目录大小,复制文件,读取写入文件等。注意:需要添加三个权限 WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGE、MOUNT_UNMOUNT_FILESYSTEMS。

作者:邹峰立,微博:zrunker,邮箱:[email protected],微信公众号:书客创作,个人平台:www.ibooker.cc

本文选自书客创作平台第20篇文章。阅读原文

书客创作

在实际开发当中,对文件的管理是非常常见的一个功能,这里给出一个关于文件处理的一些常用方法的封装类ZFile,为了开发方便,可以直接引入封装内容到自己的项目当中,那么该如何引用呢?

一、引入资源包

这里提供两种方式引入资源:

1、在build.gradle文件中添加以下代码:

在build.gradle文件中添加以下代码: allprojects{repositories{maven{url 'https://www.jitpack.io' } } } dependencies{compile'com.github.zrunker:ZFile:v1.0.4' } 

2、使用maven,添加以下代码:

<repositories> <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository> </repositories> 
<dependency> <groupId>com.github.zrunker </groupId> <artifactId>ZFile</artifactId> <version>v1.0.4 </version> </dependency> 

二、使用ZFile

应用添加资源后,就可以直接使用ZFile类进行文件处理工作。例如:

 /** * 使用ZFile * * @author 邹峰立 */ public class FileLibTestActivity extends AppCompatActivity{@Override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 创建单目录 String filePath1 = FileUtil.SDPATH + File.separator + "imageFile"; FileUtil.createSDDir(filePath1); // 创建多目录 String filePath2 = FileUtil.SDPATH + File.separator + "ZFileDemo" + File.separator + "Cache"; FileUtil.createSDDirs(filePath2); // 创建文件-根据当前年月日时分秒(时间戳)生成 File file1 = FileUtil.createTimeMillisFile(); // 创建文件-根据文件名生成 File file2 = FileUtil.createNameFile("test1.txt"); // 删除文件 if (file1 != null) FileUtil.delFile(file1.getAbsolutePath()); // 删除文件夹(目录),以及内部所有文件 FileUtil.deleteDir(filePath2); // 读取文件 String str = FileUtil.readFile(this, "test"); Log.d("test", str); // 写入文件 FileUtil.writeFile(this, "123456789", "test", MODE_PRIVATE); // 复制单个文件(复制文件内容) File file3 = FileUtil.createNameFile("ZFileDemo" + File.separator + "test2.txt"); if (file2 != null && file3 != null) FileUtil.copyFile(file2.getAbsolutePath(), file3.getAbsolutePath()); // 复制整个文件夹内容 FileUtil.copyFolder(filePath1, filePath2); // 判断文件/目录是否存在 boolean isExists = FileUtil.isFileExist(filePath1); Log.d("Log111", isExists + ""); // 获取文件/文件夹的指定单位的大小 double fileSize = FileUtil.getFileOrFilesSize(filePath1, FileUtil.SIZETYPE_B); Log.d("Log1112", fileSize + ""); // 调用此方法自动计算文件/文件夹的大小 String sizeStr = FileUtil.getAutoFileOrFilesSize(filePath1); Log.d("Log1113", sizeStr); // 获取指定文件大小(B) if (file2 != null){long sizeFile = FileUtil.getFileSize(file2); Log.d("Log1114", sizeFile + "")} // 获取指定文件夹大小(B) long sizeFiles = FileUtil.getFileSizes(new File(filePath1)); Log.d("Log1115", sizeFiles + ""); // 转换文件大小(取最大单位)(保留两位小数) String fSize = FileUtil.formatFileSize(25012); Log.d("Log1116", fSize); // 转换文件大小,指定转换的单位(保留两位小数) double fSize2 = FileUtil.formatFileSize(25012, FileUtil.SIZETYPE_KB); Log.d("Log1117", fSize2 + ""); // 清除本应用内部缓存 FileUtil.clearAllCache(this); // 获取本应用内部缓存大小(B) long totalCacheSize = FileUtil.getTotalCacheSize(this); Log.d("Log1118", totalCacheSize + ""); // 获取本应用内部缓存大小(格式化) String formatCacheSize = FileUtil.getFormatTotalCacheSize(this); Log.d("Log1119", formatCacheSize); // 清除本应用SharedPreference(/data/data/com.xxx.xxx/sharedprefs) FileUtil.cleanSharedPreference(this); // 按名字清除本应用数据库 FileUtil.delDatabaseByName(this, "user"); // 获取文件目录信息 ArrayList<FileInfoBean> fileInfoBeans = FileUtil.getFileInfos(FileUtil.SDPATH); Log.d("Log11110", fileInfoBeans.toString()); // 打开文件 FileUtil.openFile(this, file1)} } 

注:Android中操作文件,需要在清单文件AndroidManifest.xml加入相应的权限,如果是在Android6.0+版本中需要动态添加权限:

<!--用于写入数据到扩展存储卡(SD)--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 往sdcard中读取数据的权限 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 在sdcard中创建/删除文件的权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> 

GitHub地址阅读原文


微信公众号:书客创作

About

Android文件管理类,包括打开不同后缀文件,创建文件/目录,获取文件/目录大小,复制文件,读取写入文件等。注意:需要添加三个权限 WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGE、MOUNT_UNMOUNT_FILESYSTEMS。

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages