Java:从 URI 构造文件?

标签 java android

我需要从 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/

相关文章:

android - `packageManager.getInstalledPackages(0)` 没有返回所有应用

java - java中的空引用

java - 如何在 Android 编码中在 ImageView 上写文本?

android - 当应用程序处于后台时显示图标。安卓

android - 如何更改 com.vanniktech.emoji.EmojiTextView 中的表情符号大小

android,带复选框的 ListView

java - 在列表中分配 ASCII 字符 A-Z

java - JTable 标题未设置

java - AES 加密,解密文件中出现额外的垃圾字符

java - Android - 单击 ListView 会激活新 Intent