【问题标题】:Uploading a file from android phone that contains a space in its path从路径中包含空格的 android 手机上传文件
【发布时间】:2020-11-24 00:10:12
【问题描述】:

我很难将名称中包含空格的文件传递到 Twilio 聊天中。

忘记我正在使用 Twilio 的事实,而只是集中精力尝试从 Android 手机中上传文件。我的安卓手机上有一张图片,我发现它的路径为/Internal storage/Download/4893079.jpg

以下是完整代码:

public void testing() {
        Messages messagesObject = channel.getMessages();
        try {
            messagesObject.sendMessage(
                    Message.options()
                            .withMedia(new FileInputStream("/Internal%20storage/Download/4893079.jpg"), "image/jpeg")
                            .withMediaFileName("4893079.jpg")
                            .withMediaProgressListener(new ProgressListener() {
                                @Override
                                public void onStarted() {
                                    System.out.println("Upload started");
                                }

                                @Override
                                public void onProgress(long bytes) {
                                    System.out.println("Uploaded " + bytes + " bytes");
                                }

                                @Override
                                public void onCompleted(String mediaSid) {
                                    System.out.println("Upload completed");
                                }
                            }),
                    new CallbackListener<Message>() {
                        @Override
                        public void onSuccess(Message msg) {
                            System.out.println("Successfully sent MEDIA message");
                        }

                        @Override
                        public void onError(ErrorInfo error) {
                            System.out.println("Error sending MEDIA message");
                        }
                    });
        } catch (FileNotFoundException e) {
            System.out.println("FAILED HORRIBLY");
            System.out.println(e);
            e.printStackTrace();
        }
    }

但是运行应用程序我最终会遇到错误,

java.io.FileNotFoundException: /Internal%20storage/Download/4893079.jpg (No such file or directory)

如图所示,我尝试用%20 替换空格,但这没有用。我也试过\ \\ 。然而,他们都没有工作。我看过Opening a local Android File with spacesSave file in Android with spaces in file name

我应该如何更换空间?

【问题讨论】:

  • “我发现它的路径是/Internal storage/Download/4893079.jpg”你确定吗?
  • 您看到的路径并不总是在您的应用程序中使用的路径。我建议创建一个短文件选择器应用程序并打印 uri 以从应用程序的角度接收路径。

标签: java android filenotfoundexception


【解决方案1】:

您需要以编程方式获取实际路径。所以真正的路径是

Environment.getExternalStorageDirectory().toString() + "/Download/4893079.jpg"

Internal storage 只是用户看到的东西,而不是机器上的真实路径。

【讨论】:

    猜你喜欢
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    相关资源
    最近更新 更多