作者微信 bishe2022

代码功能演示视频在页面下方,请先观看;如需定制开发,联系页面右侧客服
Android文件存储

Custom Tab

1.内部存储(Internal Storage)

内部存储会随着应用被卸载而清除。
通过getFilesDir()getCacheDir()可以得到内部文件路径和缓存路径。

/data/data/${package}/files
/data/data/${package}/cache

2.外部存储(External Storage)

外部存储需要权限,但是在4.4(API 19)以上,外部存储中的私有存储不需要权限
所以如果你只需要用私有存储,可以这样写。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"android:maxSdkVersion="18" />

1.私有存储(卸载应用时会被清除,跟内部存储有点像)

主要方法如下。
getXXXFilesDir(type)参数type可以为null

 getExternalCacheDir();
    getExternalFilesDir(null);
    /*
    *以下的getXXXDirs是同时获取内部存储卡和外部存储卡(SD卡)
    *返回值为一个数组
    *下面两个方法在API19以上才能用,所以需要用supportV4中的方法
    */
    getExternalCacheDirs();
    getExternalFilesDirs(null);
    //supportV4中的方法
    ContextCompat.getExternalFilesDirs(this, null);
    ContextCompat.getExternalCacheDirs(this);

通过测试得到的私有缓存路径和私有文件路径如下:

/storage/emulated/0/Android/data/${package}/files
/storage/emulated/0/Android/data/${package}/cache

2.公有存储(卸载应用时不会被清除)

下面的两个方法可以获取外部存储路径。
其中getExternalStoragePublicDirectory(type)一般用来获取系统的目录,比如Download,DCIM,Music。
参数type不能为null

Environment.getExternalStorageDirectory();
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);

比如,以下代码在系统的Pictures目录下创建了一个MyPhoto文件夹

Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "MyPhoto");

转载自:https://www.cnblogs.com/chace/p/4489691.html

Home