Android文件存储常用Api和对应存储位置

防止经常要用的时候记不住在哪个文件夹,要再去一一百度很麻烦,一次性测完了整理放在这里。

注:测试时的Android版本是12,如果实际地址不同可以用下面的测试代码自行重新看一遍。

Api对应文件夹目录说明
应用安装位置data/data/包名只有debug的包才能点进去看内部文件
getExternalFilesDir()/storage/emulated/0/Android/data/包名/files获取外部地址时一般来说都用这个,后面再加上文件夹将你自己要存的文件分类
getExternalFilesDirs()/storage/emulated/0/Android/data/包名/files上面那个方法的复数版本,会返回所有符合要求的地址,demo里面两者返回相同
getExternalFilesDir(Environment.DIRECTORY_MUSIC)/storage/emulated/0/Android/data/包名/files/music同上,入参还有很多能填的,具体看Environment类的对应常量
getExternalCacheDirs()/storage/emulated/0/Android/data/包名/cache
getDataDir()/data/user/0/包名如果你的App要上应用市场,那么一般来说用这个,带external的方法都需要获取外部读写权限
getFilesDir()/data/user/0/包名/files如果你的App要上应用市场,那么一般来说用这个,带external的方法都需要获取外部读写权限

代码(请随便整个测试按钮然后调用入口方法):

public class ContextFileUtils {

    private static final String TAG = "FileUtils";

    public static void printContextFile(Context context) {
        if (context == null) {
            Log.e(TAG, "printContextFile: null Context!!!");
            return;
        }

        printFilesPath(context.getExternalFilesDirs(null), "getExternalFilesDirs");
        printFilePath(context.getExternalFilesDir(null), "getExternalFilesDir");
        printFilesPath(context.getExternalFilesDirs(Environment.DIRECTORY_MUSIC), "getExternalFilesDirs, DIRECTORY_MUSIC");
        printFilesPath(context.getExternalFilesDirs(Environment.DIRECTORY_PICTURES), "getExternalFilesDirs, DIRECTORY_PICTURES");
        printFilesPath(context.getExternalCacheDirs(), "getExternalCacheDirs");
        printFilePath(context.getExternalCacheDir(), "getExternalCacheDir");

        printFilePath(context.getDataDir(), "getDataDir");
        printFilePath(context.getFilesDir(), "getFilesDir");
    }

    private static void printFilesPath(File[] files, String msg) {
        if (files == null) {
            return;
        }
        for (File file : files) {
            printFilePath(file, msg);
        }
    }

    private static void printFilePath(File file, String msg) {
        if (file != null) {
            Log.i(TAG, msg + ": " + file.getAbsolutePath());
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值