我需要在我的应用程序中获取assets文件夹的绝对路径,因为我想使用Web服务器提供文件,并且它需要绝对路径。这可能吗?
我原以为可能会有这样的事情:
String rootDir = getAssets().getRootDirectory();
但没有。
任何帮助表示欢迎,欢呼。
答案 0 :(得分:28)
这可能吗?
没有。 [your] app中没有“资产文件夹的绝对路径”。资产存储在APK文件中。
在特定情况下,例如提供给WebView
的网址,您可以使用特殊的file:///android_asset
基本网址来引用资源中的文件。
答案 1 :(得分:7)
您始终可以将文件从APK中的资源目录复制到设备上的文件夹,然后提供该文件夹。
答案 2 :(得分:0)
与mentioned一样,无法使用设备文件系统中的绝对路径访问Android资产。因此,每当必须提供方法的文件系统路径时,您就很不走运。
但是,在您的情况下,还有其他选择:
我想使用网络服务器来提供文件,并且它需要绝对路径。
仅当您希望使用网络服务器提供的默认机制将文件作为静态文件提供文件时,才需要绝对路径。但是网络服务器更加灵活:您可以将URL中的任何路径映射到您可以访问的任何数据源:文件,数据库,Web资源,Android资源,Android资产。具体操作取决于您使用的Web服务器。
例如,您可以自己定义任何以https://example.com/assets/
开头的URL都应映射到Android APK的资产文件夹。然后,您可以open the asset as an InputStream
并将内容提供给Web服务器的客户端。