当前位置: 首页 > news >正文

Android之外部存储可以访问哪些文件夹

目录

  • 内部存储(Internal Storage)
  • 外部存储(读取权限)
    • 外部存储的公共文件夹
    • 访问外部存储公共文件夹
    • 访问外部存储的权限
    • 访问应用私有的外部存储目录
    • 访问和管理文件
  • 总结

在 Android 设备上,外部存储(External Storage)指的是设备的外部存储空间,可以是内置的存储(如内部 SD 卡)或可移动的存储(如外部 SD 卡)。外部存储通常用于存储需要长期保留的文件,如照片、视频和文档等。Android 提供了一些标准的公共文件夹,用于特定类型的文件存储。

Android应用程序可以访问以下几个外部存储的文件夹:

内部存储(Internal Storage)

  • /data/data/<app_package>/files/: 应用程序自身的私有目录,通常用于存储应用缓存、用户生成的数据等。
  • /data/data/<app_package>/cache/: 应用的缓存文件夹,用于临时存储数据。

外部存储(读取权限)

/storage/emulated/0/: 手机的默认外部存储,需要用户授权才能访问。这包括DCIM(图片)、Documents(文档)、Download(下载)等子目录。
/storage/sdcard/: 如果设备支持SD卡,Android系统会将其视为外部存储,不过现代手机大多将此路径归入/storage/emulated/0。

外部存储的公共文件夹

以下是一些常见的外部存储公共文件夹,这些文件夹通常位于 /storage/emulated/0/ 路径下

  1. Environment.DIRECTORY_MUSIC:存储音乐文件。
  2. Environment.DIRECTORY_PODCASTS:存储播客文件。
  3. Environment.DIRECTORY_RINGTONES:存储铃声文件。
  4. Environment.DIRECTORY_ALARMS:存储闹铃文件。
  5. Environment.DIRECTORY_NOTIFICATIONS:存储通知音文件。
  6. Environment.DIRECTORY_PICTURES:存储图片文件。
  7. Environment.DIRECTORY_MOVIES:存储视频文件。
  8. Environment.DIRECTORY_DOWNLOADS:存储下载的文件。
  9. Environment.DIRECTORY_DCIM:存储相机拍摄的照片和视频。
  10. Environment.DIRECTORY_DOCUMENTS:存储文档文件。

访问外部存储公共文件夹

要访问这些公共文件夹,可以使用 Environment 类提供的方法。例如,要获取图片文件夹的路径,可以使用以下代码:

File picturesDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

访问外部存储的权限

在访问外部存储时,需要申请相应的权限。在 Android 6.0 (API 级别 23) 及以上版本,需要在运行时动态申请权限。
在 AndroidManifest.xml 中声明权限

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

在代码中动态申请权限:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_WRITE_STORAGE);
}

访问应用私有的外部存储目录

除了公共文件夹,Android 还允许应用在外部存储中创建私有目录。私有目录在应用被卸载时会自动删除。

File appExternalFilesDir = getExternalFilesDir(null); // 获取应用私有外部存储根目录
File appExternalPicturesDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES); // 获取应用私有外部存储图片目录

访问和管理文件

一旦获得了文件夹路径,可以使用标准的文件 I/O 操作来访问和管理文件。例如,创建一个文件并写入内容:

File file = new File(picturesDir, "example.txt");
try (FileOutputStream fos = new FileOutputStream(file)) {fos.write("Hello, World!".getBytes());
} catch (IOException e) {e.printStackTrace();
}

总结

在 Android 中,外部存储提供了一些标准的公共文件夹,用于存储特定类型的文件。通过使用 Environment 类和适当的权限管理,可以方便地访问和管理这些文件夹。对于需要长期保留的文件,如照片、视频和文档,外部存储是一个理想的选择。


http://www.mrgr.cn/news/21803.html

相关文章:

  • SpringBoot开发——整合JDBC
  • 自定义view中常用到哪些方法作用分别是什么
  • web登录校验
  • YOLOv8改进 | Conv篇 | YOLOv8引入DWR
  • 改写二进制文件
  • The One You Love 你爱的那个人
  • 数据库面试题学习
  • 后仿真中《建立违例和保持违例》你死板思维了吗?
  • 概率DP (由一道绿题引起的若干问题。目前为一些老题,蒟蒻的尝试学习1.0)
  • 基于Spring Boot的火车订票管理系统
  • 【Unity小技巧】物体遮挡轮廓描边效果
  • springboot数据库连接由localhost改成IP以后访问报错500(2024/9/7
  • Effective Java学习笔记--39-41条 注解
  • 洛谷 凸多边形划分
  • 如何完成本科毕业论文设计
  • 11.4.软件系统分析与设计-算法的分析与设计
  • gcc make cmake例程
  • 70-java write类应用场景
  • 【重学 MySQL】十六、算术运算符的使用
  • 【数据库实战】1_Oracle_命中关联人或黑名单或反洗钱客户