android - 有没有办法从 Android 的 Assets 文件夹中将文件作为 File 对象打开?

标签 android file assets

我想获取位于 Assets 目录中的文件的文件大小。我看到很多这样的例子

 InputStream myInput = appContext.getAssets().open() 

我知道我可以通过简单地循环读取 InputStream 来确定文件大小,但我正在寻找一种通过 File object 来完成此操作的方法。
所以我需要 Assets 的路径,这就是我无法确定的...如何获得该路径?
还尝试通过 appContext.getAssets().openFd( )openNonAssetFd() 但运气不好 - 得到了 FileNotFound 或可能是压缩异常。
顺便说一句,developer.android.com 上对这些 openFd 方法进行了“很好的描述”。


我尝试了下一个代码:

file = new File(new URI("file:///android_asset/db/call3.db"));
Log.i(APP_TAG, "File name: "+file.getName());
Log.i(APP_TAG, "File path: "+file.getPath());
Log.i(APP_TAG, "File length: "+file.length());
Log.i(APP_TAG, "File isFile: "+file.isFile());
Log.i(APP_TAG, "File exists: "+file.exists());

哪些输出记录:
04-13 12:10:03.413:信息(6259):文件名:call3.db
04-13 12:10:03.432: INFO(6259): 文件路径:/android_asset/db/call3.db
04-13 12:10:03.444:信息(6259):文件长度:0
04-13 12:10:03.444: INFO(6259): 文件 isFile: false
04-13 12:10:03.444: INFO(6259): 文件存在: false

当然,文件的大小不是 0,而是 195 584 字节。

最佳答案

How to get that path?

没有路径。您所寻找的是不可能的,抱歉。

关于android - 有没有办法从 Android 的 Assets 文件夹中将文件作为 File 对象打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5647253/

相关文章:

Java输入流追加而不删除

ruby-on-rails - rake 和 bin/rake 的区别

android - 如何保存完整的网页并稍后加载以供离线访问

android - 如何在 Visual Studio 中创建用于开发 Xamarin UI 测试的 Apk 文件?

android - 写安卓驱动?

android - 如何跨包引用Android 'assets'?

php - iPhone 6 无法正确加载 css

android - 如何在 Android 上启动 Activity 管理帐户/同步设置?

file - Torrent 文件协议(protocol) - 自定义字段

android - 我在哪里找到由 android 应用程序修改的文件