【问题标题】:How do I get the absolute path of "assets" directory in Android?如何在 Android 中获取“assets”目录的绝对路径?
【发布时间】:2011-07-13 12:34:27
【问题描述】:

我只想要assets 目录的路径,我想在整个应用程序中将其用作变量。

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

谁能帮我解决这个问题?

【问题讨论】:

  • 你是在用这个来形成内容Uris吗?您的用例具体是什么?
  • @David:由于 android 对raw 目录中的文件有文件大小限制,我将把文件放在assets 目录中,在运行时,我会根据需要检索它们。 ..所以基本上,文件名是动态的,但assets目录的路径将保持不变......所以想获取assets目录的路径。
  • 明白了——如果你需要的话,我可以给你一个 Uri 形式的路径,你可以使用 ContentProviders 吗?显然,这仅在您使用 ContentProvider 加载资产时才有效,这就是我问的原因。
  • @David:我不确定这是否可行,但我可以试一试。实际上,我将在我的一个客户 Settings 类中设置 assets 目录的路径,该类将被其他 API 调用使用......你看到这是可能的......也许你可以分享一些你的东西可能工作的代码,我会试一试......在此先感谢。

标签: android android-assets


【解决方案1】:

我只想要我想在整个应用程序中用作变量的资产目录的路径。

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

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

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

谁能帮我解决这个问题?

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

由于 android 对 raw 目录中的文件有文件大小限制,我将把我的文件放在 assets 目录中,并且在运行时,我会根据需要检索它们

资产的“限制”是相同的,AFAIK。绕过“限制”的常用方法是给文件一个扩展名,Android 的构建工具不会尝试压缩(.mp3 工作 IIRC)。

【讨论】:

  • 我一直是您的书的忠实粉丝。我实际上正在开发一个计划用于 Android 项目的 jar 文件。我知道文件大小限制可以通过使用 Android 未压缩的文件(如 .jpg、.mp3 等)的扩展名来克服......我想要类似的东西,用户放置某个文件在资产目录中,以后可以通过我的 jar 文件公开的 API 调用使用它。我的方法是否正确?如果没有,您认为还有其他更好的选择吗?
  • “我想要这样的东西,用户将某个文件放在资产目录中,以后可以通过我的 jar 文件公开的 API 调用使用它。我的方法正确吗?” --只要你得到一个Context,那么你就可以得到一个AssetManager,这听起来不错。我有点担心这样的设计可能会对重用者施加人为的限制(例如,您在 assets/ 中强制使用某些文件名或目录)。 “我一直是你的书的忠实粉丝”——谢谢!
  • @CommansWare: 接受你的回答.. 最后,只是想听听你的意见:你有没有看到我可以让我的jar 文件的用户放置文件的任何可能方式在某个位置,以后可以在他们的应用程序代码中引用它以使用我的jar 文件提供的特性/功能?提前致谢!
  • @mahi: 恐怕我不明白最后一个问题。
【解决方案2】:

尝试使用

资产文件描述符

【讨论】:

  • 能否请您指向有关如何使用它的相关链接或一些示例代码...?提前致谢
  • 我看到了AssetFileDescriptor 的文档,我认为它无论如何都没有提供assets 目录的路径...
猜你喜欢
  • 1970-01-01
  • 2018-12-27
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2016-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多