为什么无法打开文件错误正在此行中发生

时间:2016-03-08 14:06:36

标签: android file

错误:E / FileSource:无法打开文件'android.resource:/com.android.grafika/2130968577'。 (没有这样的文件或目录)

String vidAddress = "android.resource://"+getPackageName()+"/"+R.raw.b_right;
Uri vidUri = Uri.parse(vidAddress);
File sliders = new File(vidUri.toString());
Log.d("File",sliders.toString());

如何解决?根本原因是什么?我的意思是这个代码片段出了什么问题?

3 个答案:

答案 0 :(得分:1)

问题是您构建的文件路径不存在。

要打开原始资源,请使用openRawResource()。例如:

InputStream stream = getContext().getResources().openRawResource( R.raw.b_right );

答案 1 :(得分:0)

  

我的意思是这段代码有什么问题?

首先,将Uri的字符串表示传递给File构造函数将永远不会起作用。 Uri有一个方案; File构造函数不知道如何处理该方案。

其次,android.resource方案适用于Android资源。虽然资源是开发人员计算机上的文件,但它们是Android设备上的不是文件,并且无法由File对象表示。

  

如何解决?

请勿尝试通过File对象访问资源。

例如,您可以在Resources对象上call openRawResource()获取原始资源上的InputStream,并给定资源ID。

答案 2 :(得分:0)

final String uriPath =" android.resource://" + getPackageName()+" / raw / texivedio";