Android如何从文件(路径)获取根目录

时间:2016-09-21 20:57:22

标签: java android filepath android-file

如何获取任何路径的根目录。如果我有文件路径 /storage/emulated/0/Android/media/com.google.android.talk/Ringtones/,返回根目录"存储"的最佳方式是什么?

文件路径是否始终在" /"格式,根据字符" /"分割路径是安全的。或者是否有我可以调用的内置功能?

我需要创建一个方法来返回Android手机上所有音频文件的根文件。

以下是我的一些路径,我想从根目录开始,然后使用音频文件浏览每个目录,那么是否有任何我可以调用的构建方法将返回第一个目录?

/storage/emulated/0/media/audio/ringtones/abc.mp3
/storage/emulated/0/Music/Various Artists/music.mp3
/storage/emulated/0/new/Artists/test.mp3

感谢。

2 个答案:

答案 0 :(得分:0)

你的建议会起作用。一种方法是将substring与indexOf一起使用。

rootPath = string.substring(0, string.indexOf("/")); 

答案 1 :(得分:0)

您可以从“.apk”访问根文件夹,如下所示:

java.io.File dir = new java.io.File("/storage/emulated/0");

并且,可以创建子文件夹:

void CreateDir() throws IOException {
    java.io.File dir = new java.io.File("/storage/emulated/0/MyApplication");
    dir.mkdir();
}

通常,您必须具有写入权限才能执行此操作:

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

但问题始于 Android 10(API 级别 29)及更高版本。每条路径都是 null

为了改善用户隐私,不推荐直接访问共享/外部存储设备。当应用以 Build.VERSION_CODES.Q 为目标时,此方法返回的路径不再可供应用直接访问。