获取Android文件资源的大小?

我的资源中的原始文件夹中有一个video文件。 我想find文件的大小。 我有这段代码:

Uri filePath = Uri.parse("android.resource://com.android.FileTransfer/" + R.raw.video); File videoFile = new File(filePath.getPath()); Log.v("LOG", "FILE SIZE "+videoFile.length()); 

但它总是给我,大小为0.我做错了什么?

  • 找不到与给定名称匹配的资源
  • 有没有什么办法可以在我的应用程序中使用不公开的Android资源?
  • 在某些设备上找不到Android资源
  • 为什么我的资产文件没有更新?
  • Android中的保留字列表
  • Android - 如何下载图像并将其用作新资源?
  • 在Android中访问资源文件
  • android - dynamic更改选项菜单,但通过从XML膨胀
  • 您无法使用File获取资源。 使用ResourcesAssetManager来获取资源的InputStream ,然后调用available()方法。

    喜欢这个:

     InputStream is = context.getResources().openRawResource(R.raw.nameOfFile); int sizeOfInputStram = is.available(); // Get the size of the stream 

    试试这些行:

     InputStream ins = context.getResources().openRawResource (R.raw.video) int videoSize = ins.available(); 

    尝试这个:

     AssetFileDescriptor sampleFD = getResources().openRawResourceFd(R.raw.video); long size = sampleFD.getLength()