【问题标题】:How to get REAL file path from android file如何从android文件中获取真实的文件路径
【发布时间】:2021-08-28 20:45:42
【问题描述】:

我不认为这会是一个如此困难的任务,但我似乎无法在任何地方找到答案。在用户浏览 android 设备上的文件夹并使用 . 如:

/documents/imagename.png

但我尝试过的每个解决方案都会产生类似于此的字符串

/documents/image:41879

首先“image:41879”不是所选文件的名称,“image:”后面的数字每张图片都会发生变化,但正如您所见,这不是我想要的。我正在寻找包含扩展名的完整文件路径。

有人能帮忙吗?

当用户单击“选择文件”按钮时,我会运行此代码

            @Override
            public void onClick(View v) {
                // ACTION_OPEN_DOCUMENT is the intent to choose a file via the system's file
                // browser.
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.setType("*/*");
                startActivityForResult(intent, 10);
            }

以下是我尝试过的众多解决方案之一,它没有获得我想要的文件路径

    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        TextView filename = (TextView) findViewById(R.id.filenameTextView);
        Uri uri = data.getData();
        String path = uri.getPath();
        directory = path;
        filename.setText(directory);
    }

非常感谢任何和所有帮助。谢谢

【问题讨论】:

    标签: java android-studio mobile directory filepath


    【解决方案1】:

    如果您想向用户显示文件路径并且它就像您的应用程序的核心功能,那么我很抱歉地说,从 API 29 或 Android 10 我们无法获得实际路径该文件出于某些安全原因,但如果不是这种情况,那么您可以使用

    InputStream is = getContentResolver().openInputStream(data.getData());
    

    然后您可以使用Cursor 传递Intent 数据 获取文件名和文件大小,然后使用OpenableColumns.FILE_NAMEOpenableColumns.FILE_SIZE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多