本文整理了一些安卓中常用的获取文件夹的api, 并得到它们的实际存储地址, 方便开发者了解在做文件存储时,文件会具体存放的位置所在。

代码运行环境为华为P9 Android 8.0, 项目版本配置如下:

compileSdkVersion 28

minSdkVersion 22

targetSdkVersion 28

不同版本手机,打印出来的地址可能会有出入, 建议可以复制如下代码进行实际测试:

kotlin版本

private fun printFileDir() {

var paths: StringBuilder = java.lang.StringBuilder()

paths.append("\n------------------------------------------------------------------------------- \n")

paths.append("\n获取目录api对应的存储地址如下: \n")

paths.append("\nEnvironment.getDataDirectory() :\t" + Environment.getDataDirectory())

paths.append("\nEnvironment.getDownloadCacheDirectory() :\t" + Environment.getDownloadCacheDirectory())

paths.append("\nEnvironment.getExternalStorageDirectory() :\t" + Environment.getExternalStorageDirectory())

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_ALARMS) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_ALARMS

)

)

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_DCIM

)

)

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_DOCUMENTS

)

)

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_DOWNLOADS

)

)

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_MOVIES

)

)

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_MUSIC

)

)

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_NOTIFICATIONS) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_NOTIFICATIONS

)

)

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_PICTURES

)

)

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PODCASTS) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_PODCASTS

)

)

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_RINGTONES) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_RINGTONES

)

)

paths.append("\nEnvironment.getExternalStorageState() :\t" + Environment.getExternalStorageState())

paths.append("\nEnvironment.getRootDirectory() :\t" + Environment.getRootDirectory())

paths.append("\nContextCompat.getExternalCacheDirs(context!!) :\t" + ContextCompat.getExternalCacheDirs(context!!).get(0).path)

paths.append(

"\nContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_ALARMS) :\t" + ContextCompat.getExternalFilesDirs(

context!!,

Environment.DIRECTORY_ALARMS

).get(0).path

)

paths.append(

"\nContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_DCIM) :\t" + ContextCompat.getExternalFilesDirs(

context!!,

Environment.DIRECTORY_DCIM

).get(0).path

)

paths.append(

"\nContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_DOCUMENTS) :\t" + ContextCompat.getExternalFilesDirs(

context!!,

Environment.DIRECTORY_DOCUMENTS

).get(0).path

)

paths.append(

"\nContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_DOWNLOADS) :\t" + ContextCompat.getExternalFilesDirs(

context!!,

Environment.DIRECTORY_DOWNLOADS

).get(0).path

)

paths.append(

"\nContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_MOVIES) :\t" + ContextCompat.getExternalFilesDirs(

context!!,

Environment.DIRECTORY_MOVIES

).get(0).path

)

paths.append(

"\nContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_MUSIC) :\t" + ContextCompat.getExternalFilesDirs(

context!!,

Environment.DIRECTORY_MUSIC

).get(0).path

)

paths.append(

"\nContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_NOTIFICATIONS) :\t" + ContextCompat.getExternalFilesDirs(

context!!,

Environment.DIRECTORY_NOTIFICATIONS

).get(0).path

)

paths.append(

"\nContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_PICTURES) :\t" + ContextCompat.getExternalFilesDirs(

context!!,

Environment.DIRECTORY_PICTURES

).get(0).path

)

paths.append(

"\nContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_PODCASTS) :\t" + ContextCompat.getExternalFilesDirs(

context!!,

Environment.DIRECTORY_PODCASTS

).get(0).path

)

paths.append(

"\nContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_RINGTONES) :\t" + ContextCompat.getExternalFilesDirs(

context!!,

Environment.DIRECTORY_RINGTONES

).get(0).path

)

paths.append("\n------------------------------------------------------------------------------- \n")

paths.append("\n以上为常用目录打印结果\n")

Log.d("file_operator", paths.toString())

}

注意,ContextCompat.getExternalFilesDirs()是为Android 4.3及以下版本为获取外置存储目录的兼容方法,返回的是一个文件数组列表。如果你的应用兼容到4.3及以下,在选择外置存储时,请默认选择第一个文件路径,只有当它控件满了或者不可用时,在选择其它可用的外置存储。

Java版本

private void printFileDir(Context context) {

StringBuilder paths = new StringBuilder();

paths.append("\n------------------------------------------------------------------------------- \n");

paths.append("\n获取目录api对应的存储地址如下: \n");

paths.append("\nEnvironment.getDataDirectory() :\t" + Environment.getDataDirectory());

paths.append("\nEnvironment.getDownloadCacheDirectory() :\t" + Environment.getDownloadCacheDirectory());

paths.append("\nEnvironment.getExternalStorageDirectory() :\t" + Environment.getExternalStorageDirectory());

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_ALARMS) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_ALARMS

)

);

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_DCIM

)

);

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_DOCUMENTS

)

);

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_DOWNLOADS

)

);

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_MOVIES

)

);

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_MUSIC

)

);

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_NOTIFICATIONS) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_NOTIFICATIONS

)

);

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_PICTURES

)

);

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PODCASTS) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_PODCASTS

)

);

paths.append(

"\nEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_RINGTONES) :\t" + Environment.getExternalStoragePublicDirectory(

Environment.DIRECTORY_RINGTONES

)

);

paths.append("\nEnvironment.getExternalStorageState() :\t" + Environment.getExternalStorageState());

paths.append("\nEnvironment.getRootDirectory() :\t" + Environment.getRootDirectory());

paths.append("\nContextCompat.getExternalCacheDirs(context) :\t" + ContextCompat.getExternalCacheDirs(context));

paths.append(

"\nContextCompat.getExternalFilesDirs(context, Environment.DIRECTORY_ALARMS)[0].getPath() :\t" + ContextCompat.getExternalFilesDirs(

context,

Environment.DIRECTORY_ALARMS

)[0].getPath()

);

paths.append(

"\nContextCompat.getExternalFilesDirs(context, Environment.DIRECTORY_DCIM)[0].getPath() :\t" + ContextCompat.getExternalFilesDirs(

context,

Environment.DIRECTORY_DCIM

)[0].getPath()

);

paths.append(

"\nContextCompat.getExternalFilesDirs(context, Environment.DIRECTORY_DOCUMENTS)[0].getPath() :\t" + ContextCompat.getExternalFilesDirs(

context,

Environment.DIRECTORY_DOCUMENTS

)[0].getPath()

);

paths.append(

"\nContextCompat.getExternalFilesDirs(context, Environment.DIRECTORY_DOWNLOADS)[0].getPath() :\t" + ContextCompat.getExternalFilesDirs(

context,

Environment.DIRECTORY_DOWNLOADS

)[0].getPath()

);

paths.append(

"\nContextCompat.getExternalFilesDirs(context, Environment.DIRECTORY_MOVIES)[0].getPath() :\t" + ContextCompat.getExternalFilesDirs(

context,

Environment.DIRECTORY_MOVIES

)[0].getPath()

);

paths.append(

"\nContextCompat.getExternalFilesDirs(context, Environment.DIRECTORY_MUSIC)[0].getPath() :\t" + ContextCompat.getExternalFilesDirs(

context,

Environment.DIRECTORY_MUSIC

)[0].getPath()

);

paths.append(

"\nContextCompat.getExternalFilesDirs(context, Environment.DIRECTORY_NOTIFICATIONS)[0].getPath() :\t" + ContextCompat.getExternalFilesDirs(

context,

Environment.DIRECTORY_NOTIFICATIONS

)[0].getPath()

);

paths.append(

"\nContextCompat.getExternalFilesDirs(context, Environment.DIRECTORY_PICTURES)[0].getPath() :\t" + ContextCompat.getExternalFilesDirs(

context,

Environment.DIRECTORY_PICTURES

)[0].getPath()

);

paths.append(

"\nContextCompat.getExternalFilesDirs(context, Environment.DIRECTORY_PODCASTS)[0].getPath() :\t" + ContextCompat.getExternalFilesDirs(

context,

Environment.DIRECTORY_PODCASTS

)[0].getPath()

);

paths.append(

"\nContextCompat.getExternalFilesDirs(context, Environment.DIRECTORY_RINGTONES)[0].getPath() :\t" + ContextCompat.getExternalFilesDirs(

context,

Environment.DIRECTORY_RINGTONES

)[0].getPath()

);

paths.append("\n------------------------------------------------------------------------------- \n");

paths.append("\n以上为常用目录打印结果\n");

Log.d("file_operator", paths.toString());

}

打印的结果如下:

-------------------------------------------------------------------------------

获取目录api对应的存储地址如下:

Environment.getDataDirectory() : /data

Environment.getDownloadCacheDirectory() : /data/cache

Environment.getExternalStorageDirectory() : /storage/emulated/0

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_ALARMS) : /storage/emulated/0/Alarms

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) : /storage/emulated/0/DCIM

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) : /storage/emulated/0/Documents

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) : /storage/emulated/0/Download

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES) : /storage/emulated/0/Movies

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC) : /storage/emulated/0/Music

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_NOTIFICATIONS) : /storage/emulated/0/Notifications

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) : /storage/emulated/0/Pictures

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PODCASTS) : /storage/emulated/0/Podcasts

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_RINGTONES) : /storage/emulated/0/Ringtones

Environment.getExternalStorageState() : mounted

Environment.getRootDirectory() : /system

ContextCompat.getExternalCacheDirs(context!!) : /storage/emulated/0/Android/data/com.finance.theinvestorroad/cache

ContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_ALARMS) : /storage/emulated/0/Android/data/com.finance.theinvestorroad/files/Alarms

ContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_DCIM) : /storage/emulated/0/Android/data/com.finance.theinvestorroad/files/DCIM

ContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_DOCUMENTS) : /storage/emulated/0/Android/data/com.finance.theinvestorroad/files/Documents

ContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_DOWNLOADS) : /storage/emulated/0/Android/data/com.finance.theinvestorroad/files/Download

ContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_MOVIES) : /storage/emulated/0/Android/data/com.finance.theinvestorroad/files/Movies

ContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_MUSIC) : /storage/emulated/0/Android/data/com.finance.theinvestorroad/files/Music

ContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_NOTIFICATIONS) : /storage/emulated/0/Android/data/com.finance.theinvestorroad/files/Notifications

ContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_PICTURES) : /storage/emulated/0/Android/data/com.finance.theinvestorroad/files/Pictures

ContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_PODCASTS) : /storage/emulated/0/Android/data/com.finance.theinvestorroad/files/Podcasts

ContextCompat.getExternalFilesDirs(context!!, Environment.DIRECTORY_RINGTONES) : /storage/emulated/0/Android/data/com.finance.theinvestorroad/files/Ringtones

-------------------------------------------------------------------------------

以上为常用目录打印结果

android选择文件夹api,Android获取文件夹api及对应存储地址整理相关推荐

  1. php put怎么接收文件,php,restful_PHP PUT方式传文件的话,如何获取文件内容呢 ?,php,restful,http - phpStudy...

    PHP PUT方式传文件的话,如何获取文件内容呢 ? 最近因为在做前后端分离,后端PHP所有Api都使用RESTFul风格. 但是在使用PUT上传文件的时候,发现$_FILES没有文件信息(可能没有上 ...

  2. java文件绝对路径_获取文件夹文件绝对路径

    引用   linuxpro https://zhidao.baidu.com/question/59940919.html?fr=iks&word=DOS+%C3%FC%C1%EE&i ...

  3. 目录操作的相关API 和 获取文件的属性信息

    目录 一,目录操作的相关API 1,创建或删除一个空目录 2,打开目录 3,读一个目录 4,关闭一个目录 二,获取文件的属性信息 1, stat,fstat,lstat 用来获取文件的属性信息 2,a ...

  4. linux打开文件夹所有文件名,获取文件夹下的所有文件名 (linux windows)

    windows下获取文件夹下的所有文件名 1 #include "folder.hpp" 2 #include 3 4 void getFilesFromFolder(const ...

  5. linux 获取文件夹下文件信息,linux下获取文件夹下子文件列表

    linux下获取文件夹下子文件列表 预置条件: 1.只遍历当前目前,不遍历当前目录的子文件夹 2.根据用户提供的开始时间戳以及持续时间,返回在这个时间区间内被修改过的文件列表. 相关知识: 1.str ...

  6. php文件夹列表,php获取文件夹下面的文件列表和文件夹列表

    function getDir($dir) { $dirArray[] = NULL; if (false != ($handle = opendir( $dir ))) { $i=0; while ...

  7. java获取文件夹 路径,Java获取文件的路径

    本文记录的是如何获取资源文件的路径. 先看看我设置的文件目录结构,如下图所示: ___ Java Build Path的设置如下图所示, 主要看build project之后的文件输出目录: ___ ...

  8. php 怎么查看文件类型信息,php获取文件类型和文件信息的方法

    php获取文件类型和文件信息的方法 发布于 2015-10-07 05:26:52 | 81 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  9. java获取文件列表,[javaSE] java获取文件列表

    递归测试 import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.Lis ...

最新文章

  1. 在 Ubuntu 16.04 LTS 上安装 Python 3.6.0
  2. Eclipse中Build Path的使用介绍---学习笔记
  3. 存储过程学习笔记(一)
  4. 广州中山大道BRT不开“巨无霸”公交车
  5. Maven : Maven和jenkins报错 ClassNotFoundException : org.slf4j.Logger
  6. 微课|中学生可以这样学Python(8.1节):解析算法例题讲解
  7. Python+sklearn使用支持向量机算法实现数字图片分类
  8. 计算机典型的操作系统有,计算机操作系统典型示例.doc
  9. Android项目实战之(1)-- 开发一个快速冲浪的程序
  10. 介绍两款实用软件:CCPROXY和SOCKSCAP
  11. 使用最小二乘法计算多元线性回归的公式推导
  12. Hexo博客-NexT主题自定义主页配置方法
  13. Unity 父子约束 手持弓箭
  14. 海康sdkC++二次开发之回放下载
  15. 累死你的不是工作是工作方式 好的团队会教你如何工作
  16. Mac Grapher(图形软件)
  17. BIT2022年春软件需求工程和UML建模 - 智慧校园数据管理系统 - Final
  18. 手机扫描身份证识别AND行驶证识别
  19. splint安装与配置
  20. unity3D第一人称射击游戏(推荐)

热门文章

  1. 计算机磁盘页面管理,Files Inspector(磁盘管理工具)
  2. 我的世界java版最新版多少_我的世界JAVA版1.16.5正式版更新内容详情
  3. C语言typedef struct详解
  4. 【Cesium】Cesium基本介绍
  5. Android6 M Dialer完全总结
  6. 企业信息安全————2、如何描述风险价值
  7. 分省固定资产投资数据(2004-2019年)
  8. 中国铁塔成立6周年 | 致敬时光,致敬奋斗者!
  9. 计算机联锁里面的熔断器,TYJL-Ⅱ型计算机联锁故障分析与处理
  10. CSS实现橡皮筋效果