如何获取任何路径的根目录。如果我有文件路径 /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
感谢。
答案 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 为目标时,此方法返回的路径不再可供应用直接访问。