访问Android中的文件
问题描述:
Android中有没有一种方法可以简单地通过文件名和路径访问文件?访问Android中的文件
我想从一个普通的Java项目中移动一些代码到Android中,其中.wav文件存储在\ src的子目录中(坏习惯?)。 Android无法清楚地使用相同的相关文件路径访问这些文件。
在Android文件系统中是否存在这些文件的文件路径,还是根本无法做到这一点?
我已经阅读了有关Assets文件夹的一些内容,所以我意识到可以使用它将文件复制到应用程序位置,但似乎有很多代码需要改变以适应我的想法不是一个大问题。
在此先感谢您的帮助。
答
如果您想将您的文件与您的应用程序一起发送,那么没有其他选择,然后将您的文件放入资产文件夹中。你可以通过自己的URL来访问他们:
文件:///android_asset/your_file.wav
这是在网页中非常有用。你可以有例如存储在资产文件夹一些CSS并引用它,如下所示:
<link rel="stylesheet" type="text/css" href="file:///android_asset/your.css" />
如果您要访问的Java代码的文件,则有两种选择。
- 获得由所提到的网址和开放的InputStream AssetFileDescriptor为您的文件
- 由
没有任何其他项目文件夹打包成.apk文件的文件名通过AssetManager打开的InputStream为您的文件文件,除了libs文件夹,这应该分发库,和res文件夹,这是存储资源只能通过资源方法/装载机访问。内容文件必须在资产文件夹中。
答
对我来说,我把它在res /原始文件夹
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();
}
我不敢肯定,如果在\ src文件夹中的文件附带的apk摆在首位..它必须是资产的文件夹 – Shrey 2012-03-16 17:51:07
看看这个 - 它似乎是你需要的东西... http://*.com/questions/4210239/how-to-use-relative-path-instead-of-absolute-path – Archer 2012-03-16 17:54:18
我不认为它可以工作,即使它是可编译的。由于资产是您可以使用文件夹结构保留原始文件的唯一地方。 (另一个地方是Res \ raw,它没有文件夹结构。) – Calvin 2012-03-16 17:58:43