在Android中访问文件

时间:2012-03-16 17:46:29

标签: java android filesystems

Android中是否有办法仅通过文件名和路径访问文件?

我正在尝试从普通的Java项目中将一些代码移植到Android中,我将.wav文件存储在\ src的子目录中(不好的做法?)。 Android无法清楚地使用相同的相对文件路径访问这些。

Android文件系统中是否存在这些文件的文件路径,或者根本无法执行此操作?

我已经阅读了有关Assets文件夹的一些内容,因此我知道您可以使用此文件将文件复制到应用程序位置,但是看起来很多代码要根据我的假设进行更改是一个大问题。

提前感谢您的帮助。

2 个答案:

答案 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();
    }