我需要从 URI 获取一个 File 对象,在 Java 中工作,但长度始终为零 - 尽管我知道文件大小不为零。
我需要将 File 对象传递给 another constructor .
我不确定是否是因为我以错误的方式构建它?这是我的代码:
File videoFile = new File(videoURI.getPath());
if (videoFile == null) {
Log.d(LOG_TAG, "File not found!");
return false;
}
Log.d(LOG_TAG, "about to upload, filepath: " + videoFile.getPath());
Log.d(LOG_TAG, "File length: " + String.valueOf(videoFile.length()));
日志输出不会输出“找不到文件!”,并打印非空路径,但显示长度为 0。
最佳答案
确保您的 URI 指向文件。
videoFile 不会为空,因为您可能正在创建一个新文件。因此 videoFile 并不代表您认为的实际文件,这就是您得到 0 长度的原因。
File videoFile = new File(videoURI.getPath()); // videoFile != null
尝试使用File constructor它接受 URI。
关于Java:从 URI 构造文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2351633/