[英]Create file from Uri exception occurs
从Uri创建文件时发生异常。 exception的值显示为null。
try {
File mFile = new File(new URI(mediaUri.toString()));
data = readFile(mFile);
} catch (Exception e) {
Log.e("Error", e.getLocalizedMessage());
}
请帮忙
提前致谢。
问题是从uri创建文件时
文件mFile =新文件(新URI(mediaUri.toString()));
mediaUri.toString()并未从中返回视频文件的正确路径以获取视频文件的正确路径
File mFile = new File(new URI(getRealPathFromURI(contentUri));
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Video.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
从给定的Uri提取视频文件路径时,此答案是userfull
问题在于,uri.toString()生成设备字符串(文件:)和路径本身。 您应该改用uri.getPath()。 返回的不是Path,而是String。 开始时可能带有额外的/或\\。 您应该放开它,以便它在所有系统上都可以使用。 正确且独立于操作系统的行将是:
File mFile = new File(new Path(mediaUri.getPath()).toString);
在Win,Mac,Linux上可以在我们的项目上工作。
有几件事可能是错误的。
首先,mediaUri可以为null
其次,readFile是您自己的方法(我想是),那么您应该发布该方法或在readFile中进行尝试/捕获。
原因是这样的。 如果要按您的代码进行操作,您正在创建一个不应包含任何数据的新文件,那么将readFile用于什么呢? 如果文件存在,并且mediaUri不为null,则null异常来自您的readFile方法。
您应该检查mediaURI是否已更正文件路径,我想它不是已更正文件路径。
您能再解释一下吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.