[英]Is there a way to open file as File object from android's assets folder?
我想获取位于assets目录中的文件的文件大小。 我看到很多例子
InputStream myInput = appContext.getAssets().open()
我知道我可以通过简单的循环读取InputStream
来确定文件大小,但我正在寻找一种方法来通过File object
来做到这一点。
所以我需要一条通往资产的道路,这就是我无法确定的事情......如何获得这条道路?
还尝试通过appContext.getAssets().openFd()
和openNonAssetFd()
获取AssetFileDescriptor
,但没有运气 - 得到FileNotFound
或可能是压缩异常。
BTW那些openFd方法在developer.android.com上“很好地描述”了。
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:INFO(6259):文件名:call3.db
04-13 12:10:03.432:INFO(6259):文件路径:/android_asset/db/call3.db
04-13 12:10:03.444:INFO(6259):文件长度:0
04-13 12:10:03.444:INFO(6259):文件isFile:false
04-13 12:10:03.444:INFO(6259):文件存在:false
当然文件的大小不是0,它是195 584字节。
如何走这条路?
没有路径。 抱歉,你所寻求的是不可能的。
我不确定是否有任何方法可以从资源文件夹中获取File对象,但要查找单行文件的长度,您可以使用以下代码。
AssetFileDescriptor afd = context.getAssets().openFd(fileName);
long size = afd.getLength();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.