2011-07-13 159 views
0

我只想要assets目录的路径,我想在整个应用程序中使用它作为变量。如何获取Android中“资产”目录的绝对路径?

我知道我们可以使用AssetManager来引用“assets”目录下的一个文件,但我现在不想引用一个文件,我只想要assets目录的路径。

有人可以帮我吗?

+0

你用这个来形成内容Uris吗?你的用例具体是什么? –

+0

@David:由于android对'raw'目录内的文件有文件大小限制,因此我将把文件放在'assets'目录中,并且在运行时,我会根据需要检索它们......所以基本上,文件名将会是动态的,但“资产”目录的路径将保持不变...所以想要获取“资产”目录的路径。 –

+0

理解 - 我可以给你一个Uri的形式,你可以使用ContentProviders的路径,如果这是你所需要的?显然这只有在你使用ContentProvider加载资源时才有效,这就是为什么我要问。 –

回答

4

我只是想,我想在整个应用的过程变量使用的资源目录的路径。

设备上没有“资产目录的路径”。

我知道我们可以使用AssetManager在“assets”目录中引用一个文件,但我现在不想引用一个文件,我只想要资产目录的路径。

设备上没有“资产目录的路径”。

有人能帮助我吗?

不,因为设备上没有“资产目录的路径”。请根据需要使用AssetManager来检索您的资产的InputStream

由于Android对原目录中的文件的文件大小限制,我将被放置在资产目录中我的文件,并在运行时,我会检索它们是必要

“限购”对于资产AFAIK来说是一样的。规避“限制”的通常方法是给文件一个Android构建工具不会试图压缩的扩展(.mp3 works IIRC)。

+0

我一直是您书籍的忠实粉丝。我实际上正在开发一个计划在Android项目中使用的jar文件。我知道文件大小的限制可以通过使用不被Android压缩的文件扩展(如.jpg,.mp3等)来克服...我想要的东西,用户放置某个文件(S)在资产目录中,稍后可以通过我的jar文件公开的API调用使用它。我的方法是否正确?如果不是,你认为有一个替代方案可能是更好的选择吗? –

+0

“我想要类似的东西,用户在资产目录中放置某个文件,稍后可以通过我的jar文件公开的API调用来使用它。我的方法是否正确?” - 只要你得到一个'上下文“,所以你可以得到一个'AssetManager',听起来很好。我担心这样的设计可能会对重用者施加人为限制(例如,您在'assets /'中强制某些文件名或目录)。 “我一直是你书籍的忠实粉丝” - 谢谢! – CommonsWare

+0

@CommansWare:接受你的答案..最后,只是想从你的意见:你看到任何可能的方式,我可以让我的'jar'文件的用户(s)放置文件在一个特定的位置,这可以稍后在他们的应用程序代码中引用它来使用我的'jar'文件提供的功能/功能?提前致谢! –

0

尝试使用

AssetFileDescriptor

+0

你可以请我指向一个相关的链接,以了解如何使用它或一些示例代码...?在此先感谢 –

+0

我看到了“AssetFileDescriptor”的文档,并且我认为它不会为“资产”目录提供路径... –

相关问题