android选择文件夹api,Android获取文件夹api及对应存储地址整理
本文整理了一些安卓中常用的获取文件夹的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及对应存储地址整理相关推荐
- php put怎么接收文件,php,restful_PHP PUT方式传文件的话,如何获取文件内容呢 ?,php,restful,http - phpStudy...
PHP PUT方式传文件的话,如何获取文件内容呢 ? 最近因为在做前后端分离,后端PHP所有Api都使用RESTFul风格. 但是在使用PUT上传文件的时候,发现$_FILES没有文件信息(可能没有上 ...
- java文件绝对路径_获取文件夹文件绝对路径
引用 linuxpro https://zhidao.baidu.com/question/59940919.html?fr=iks&word=DOS+%C3%FC%C1%EE&i ...
- 目录操作的相关API 和 获取文件的属性信息
目录 一,目录操作的相关API 1,创建或删除一个空目录 2,打开目录 3,读一个目录 4,关闭一个目录 二,获取文件的属性信息 1, stat,fstat,lstat 用来获取文件的属性信息 2,a ...
- linux打开文件夹所有文件名,获取文件夹下的所有文件名 (linux windows)
windows下获取文件夹下的所有文件名 1 #include "folder.hpp" 2 #include 3 4 void getFilesFromFolder(const ...
- linux 获取文件夹下文件信息,linux下获取文件夹下子文件列表
linux下获取文件夹下子文件列表 预置条件: 1.只遍历当前目前,不遍历当前目录的子文件夹 2.根据用户提供的开始时间戳以及持续时间,返回在这个时间区间内被修改过的文件列表. 相关知识: 1.str ...
- php文件夹列表,php获取文件夹下面的文件列表和文件夹列表
function getDir($dir) { $dirArray[] = NULL; if (false != ($handle = opendir( $dir ))) { $i=0; while ...
- java获取文件夹 路径,Java获取文件的路径
本文记录的是如何获取资源文件的路径. 先看看我设置的文件目录结构,如下图所示: ___ Java Build Path的设置如下图所示, 主要看build project之后的文件输出目录: ___ ...
- php 怎么查看文件类型信息,php获取文件类型和文件信息的方法
php获取文件类型和文件信息的方法 发布于 2015-10-07 05:26:52 | 81 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...
- java获取文件列表,[javaSE] java获取文件列表
递归测试 import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.Lis ...
最新文章
- 在 Ubuntu 16.04 LTS 上安装 Python 3.6.0
- Eclipse中Build Path的使用介绍---学习笔记
- 存储过程学习笔记(一)
- 广州中山大道BRT不开“巨无霸”公交车
- Maven : Maven和jenkins报错 ClassNotFoundException : org.slf4j.Logger
- 微课|中学生可以这样学Python(8.1节):解析算法例题讲解
- Python+sklearn使用支持向量机算法实现数字图片分类
- 计算机典型的操作系统有,计算机操作系统典型示例.doc
- Android项目实战之(1)-- 开发一个快速冲浪的程序
- 介绍两款实用软件:CCPROXY和SOCKSCAP
- 使用最小二乘法计算多元线性回归的公式推导
- Hexo博客-NexT主题自定义主页配置方法
- Unity 父子约束 手持弓箭
- 海康sdkC++二次开发之回放下载
- 累死你的不是工作是工作方式 好的团队会教你如何工作
- Mac Grapher(图形软件)
- BIT2022年春软件需求工程和UML建模 - 智慧校园数据管理系统 - Final
- 手机扫描身份证识别AND行驶证识别
- splint安装与配置
- unity3D第一人称射击游戏(推荐)