有没有办法从Android的资产文件夹作为文件对象打开文件?

我想获得位于资产目录中的文件的文件大小。 我看到很多例子

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

我知道我可以通过简单的读取循环中的InputStream来确定文件大小,但是我正在通过File object寻找一种方法。
所以我需要一个资产的path,多数民众赞成我不能确定的事情…如何获得path?
还尝试通过appContext.getAssets().openFd()获得AssetFileDescriptor appContext.getAssets().openFd()openNonAssetFd()但没有运气 – 得到FileNotFound或可能压缩的exception。
顺便说一下,这些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):文件path:/android_asset/db/call3.db
04-13 12:10:03.444:INFO(6259):文件长度:0
04-13 12:10:03.444:INFO(6259):File isFile:false
04-13 12:10:03.444:INFO(6259):文件存在:false

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

  • 如何从资产中加载图片?
  • 如何打开存储在res / raw或assets文件夹中的pdf?
  • Android:我如何从资产文件创buildFile对象?
  • 如何在libgdx中将资源从android连接到桌面?
  • Android:如何find资产文件夹的绝对path?
  • Android资产文件夹的安全性
  • 资产txt文件的Androidpath
  • Android资产,C,JNI
  • 如何获得path?

    没有path。 你正在寻找的是不可能的,对不起。

    我不知道是否有任何方法从资产文件夹中获取文件对象,但要查找单行中的文件的长度,可以使用下面的代码。

     AssetFileDescriptor afd = context.getAssets().openFd(fileName); long size = afd.getLength();