如何在android中获取内部和外部sdcard路径

新手上路,请多包涵

大多数新的 android 设备都有一个内部 sdcard 和一个外部 sdcard。我想制作一个文件资源管理器应用程序,但我无法找到如何获取在我的应用程序中使用的路径,因为

File file = Environment.getExternalStorageDirectory();

只是在大多数设备中返回 /mnt/sdcard 但对于其他外部 SD 卡还有另一条路径,如 /storage1 or /storage2 。任何帮助表示赞赏。

原文由 Mahmoud Jorban 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 476
1 个回答

如何在android中获取内部和外部sdcard路径

存储在内部存储中的方法:

 File getDir (String name, int mode)

File getFilesDir ()

以上方法存在于 Context 类中

存储在手机内存中的方法:

 File getExternalStorageDirectory ()

File getExternalFilesDir (String type)

File getExternalStoragePublicDirectory (String type)

一开始大家都用 Environment.getExternalStorageDirectory() ,指向手机内存 根目录。结果,根目录充满了随机内容。

后来又增加了这两个方法:

Context 类中,他们添加了 getExternalFilesDir() ,指向手机内存中特定于应用程序的目录。卸载应用程序时,该目录及其内容将被删除。

Environment.getExternalStoragePublicDirectory() 用于集中存储众所周知的文件类型(如照片和电影)的地方。卸载应用程序时 不会 删除此目录及其内容。

存储在可移动存储(即微型 SD 卡)中的方法

在 API 级别 19 之前,没有正式的方式存储在 SD 卡中。但许多人可以使用非官方 API 来做到这一点。

正式地,在 Context API 级别 19 的类(Android 版本 4.4 - Kitkat)中引入了一种方法。

 File[] getExternalFilesDirs (String type)

它返回所有共享/外部存储设备上特定于应用程序的目录的绝对路径,应用程序可以在其中放置它拥有的持久文件。这些文件在应用程序内部,通常不会作为媒体对用户可见。

这意味着,它将返回到 Micro SD 卡和内部存储器的路径。一般情况下, 第二个返回路径 是micro SD卡的存储路径。

根据谷歌/官方 Android 文档,内部和外部存储 术语 与我们的想法 大不相同

原文由 AnV 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题