【发布时间】:2014-08-01 14:25:56
【问题描述】:
我有一个简单的?!我无法解决的问题...
我正在尝试访问资产文件夹中的文件,如下所示:
File file = new File("file:///android_asset/test/sample.pdf");
但文件不可用,因为这个
System.out.println("#### "+file.exists());
返回 false。
现在事情变得越来越奇怪了。如果我使用 AssetsManager 并使用
调试该文件夹for(String asset : getAssets().list("test")) {
System.out.println("### FOUND ASSET " +asset);
}
我得到了积极的结果。 (显示sample.pdf)。
谁能告诉我我做错了什么?我一点头绪都没有。
【问题讨论】:
-
点击这个developer.android.com/reference/android/content/res/…... 可能你必须检查整个路径
like test/sample.pdf可能会得到想要的结果 -
资产在运行时不是文字文件 - 您可以以多种类似文件的方式使用它们,例如从其中获取 FileInputStream,但您很可能(?)无法创建实际的文件对象包装之一。更新:实际上您不能,请参阅此页面顶部横幅中链接的副本。
-
但是,如果您可以满足 FileInputStream 甚至 FileDescriptor 的要求,则无需制作实际的文件系统副本。