Android中是否有办法仅通过文件名和路径访问文件?
我正在尝试从普通的Java项目中将一些代码移植到Android中,我将.wav文件存储在\ src的子目录中(不好的做法?)。 Android无法清楚地使用相同的相对文件路径访问这些。
Android文件系统中是否存在这些文件的文件路径,或者根本无法执行此操作?
我已经阅读了有关Assets文件夹的一些内容,因此我知道您可以使用此文件将文件复制到应用程序位置,但是看起来很多代码要根据我的假设进行更改是一个大问题。
提前感谢您的帮助。
答案 0 :(得分:2)
如果您希望随应用程序一起发送文件,则没有其他选择,然后将文件放在资产文件夹中。您可以通过他们的网址访问它们:
文件:///android_asset/your_file.wav
在网页中很有用。例如,您可以将一些CSS存储在assets文件夹中,并按如下方式引用它:
<link rel="stylesheet" type="text/css" href="file:///android_asset/your.css" />
如果要访问Java代码中的文件,则有两种选择。
没有其他项目文件夹打包到.apk文件中,除了应该分发库的 libs 文件夹,以及 res 文件夹,该文件夹只存储可访问的资源通过资源方法/加载器。内容文件必须位于资产文件夹中。
答案 1 :(得分:1)
对我来说,我把它放在res / raw文件夹中
MediaPlayer player = new MediaPlayer();
AssetFileDescriptor afd = resources.openRawResourceFd(R.raw.music.wav);
if (afd != null) {
player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),
afd.getLength());
afd.close();
}