繁体   English   中英

访问存储在android中的/ storage / emulated / 0目录中的文件时出现FileNotFoundException

[英]FileNotFoundException when accessing file stored at /storage/emulated/0 directory in android

我正在尝试通过POST HTTP方法将保存在Android中的/storage/emulated/0/Videos/someVideo.3gp中的录制视频文件传递到远程服务器。 我用这种方法将视频文件以FileBody格式传递到远程服务器。 但是,最后,当我尝试执行httpClient.execute(request)命令时,它只会继续抛出FileNotFoundException

因此,我不明白为什么视频文件不能被外界访问,因为我已经使用getExternalStorageDirectory()将其保存到sdcard中。 我还为清单文件添加了写权限。

PS我正在使用Nexus 7进行测试。 请帮忙..

提前致谢!

您是否在执行httpClient.execute(request)之前检查文件是否存在?

从您所关注的问题引用:

File sourceFile = new File(sourceFileUri);
if (!sourceFile.isFile()) {
Log.e("Huzza", "Source File Does not exist");
return 0;
}

编辑:
可能是您没有在onActivityResult(...) method上从Uri正确转换路径,我正在共享获取正确路径的代码,并且在我的应用程序中运行良好。

String videoPath = "";
try 
{ 
 String[] filePathColumn = { MediaStore.Video.Media.DATA };
 Cursor cursor = getContentResolver().query(selectedVideoUri,
 filePathColumn, null, null, null);
 cursor.moveToFirst();
 int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
 videoPath = cursor.getString(columnIndex);
 cursor.close();
} catch (Exception e) {
 Log.e(TAG,
 "Error parsing Video path = " + e.toString());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM