如何在Unity中获取android的内部存储器根目录?

时间:2019-10-22 12:38:24

标签: c# android unity3d

我看过很多类似的问题,似乎很多人试图弄清楚,我找不到任何可以帮助我的答案。我正在使用Unity制作一个适用于Android的简单应用。

我想在android内部存储根目录中有一个文件夹,在我的电脑上看起来像:huaweiP30 \内部存储\视频\

我不需要在该文件夹中写入任何内容,我希望我的应用列出该文件夹中的所有mp4视频,并能够使用统一视频播放器进行播放,我希望用户能够轻松添加更多内容只需将视频放入该文件夹即可。我在Windows上对其进行了测试,该应用程序已按预期完成了工作,现在我要做的就是为它提供内部存储的正确路径。 另外,我可以让应用程序列出整个存储中的所有.mp4文件,如果这样做更容易。

我尝试了所有可以在网上找到的答案,其中有些对其他人有用。到目前为止,对我没有任何帮助。

将其用于在Windows上进行测试,并完全按照我的要求工作。我只是不知道该用什么替换该路径以使其从内部存储\视频\

中读取
string videosPath = "C:\Users\Admin\Downloads\";

string [] filePaths = Directory.GetFiles(videosPath,"*.mp4");

请帮助我解决它或找到其他解决方法,感谢您的帮助。 预先感谢。

1 个答案:

答案 0 :(得分:1)

这比我想象的要容易!我研究了这么长时间,当我要做的就是疯狂时-在手机设置中,我进入了权限,内存并允许我的应用访问内存。 然后就像

一样简单
Filename   Area
0.csv      123123
50.csv     242311
100.csv    233246
:
:

获取路径。添加了

后,我几乎没有任何内容就能读取内部存储中的每个视频
string path = Application.persistentDataPath.Substring(0, Application.persistentDataPath.IndexOf("Android", StringComparison.Ordinal));
        videosPath = path +"/videos/";

这是使您的应用请求权限的方法,因此您不必手动允许它。 https://docs.unity3d.com/Manual/android-RequestingPermissions.html

示例代码是关于麦克风的,但是您只需要将其更改为ExternalStorageRead / Write,不必担心“外部”,它也适用于内部存储器。