Android:如何找到assets文件夹的绝对路径?

jxct1oxe  于 2023-02-17  发布在  Android
关注(0)|答案(4)|浏览(901)

我需要获取应用中assets文件夹的绝对路径,因为我想使用Web服务器提供文件,而它需要绝对路径。这可能吗?
我本以为会有这样的事:

String rootDir = getAssets().getRootDirectory();

但事实并非如此。
感谢任何帮助,干杯。

2fjabf4q

2fjabf4q1#

这可能吗?
不会。没有"[您的]应用中的资产文件夹的绝对路径"。资产存储在APK文件中。
在某些情况下,例如提供给WebView的URL,您可以使用特殊的file:///android_asset基本URL来引用资源中的文件。

cedebl8k

cedebl8k2#

您始终可以将文件从APK中的assets目录复制到设备上的文件夹,然后提供该文件夹。

u59ebvdq

u59ebvdq3#

作为mentioned,Android资产不能通过设备文件系统中的绝对路径访问,所以每当你必须提供一个方法的文件系统路径时,你就不走运了。
但是,在您的情况下,还有其他选项:
我想使用Web服务器提供文件,它需要绝对路径。
只有当你想用web服务器提供的默认机制将文件作为静态文件时,才需要绝对路径。但是web服务器要灵活得多:您可以将URL中的任何路径Map到您可以访问的任何数据源:文件,数据库,网络资源,安卓资源,安卓资产。如何做到这一点取决于你使用的网络服务器。
例如,您可以自行定义任何以https://example.com/assets/开头的URL都应Map到Android APK的assets文件夹,然后可以将内容open the asset as an InputStream并提供给Web服务器的客户端。

7gs2gvoe

7gs2gvoe4#

如果您有任何资产,如PDF文件存储在资产文件夹内,然后使用下面的行获取其路径:

/assets/file_name.pdf

相关问题