Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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

Notifications You must be signed in to change notification settings

appreturn/ZFile

Open more actions menu

Repository files navigation

ZFile

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

作者:邹峰立,微博:zrunker,邮箱:zrunker@yahoo.com,微信公众号:书客创作,个人平台: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

Morty Proxy This is a proxified and sanitized view of the page, visit original site.