我想获取位于 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/