Путь Uri несовместим с Java.IO.File

#c# #android #xamarin #xamarin.android #path

#c# #Android #xamarin #xamarin.android #путь

Вопрос:

Я использую кнопку, чтобы найти файл в телефоне:

     private void button_save_Click(object sender, System.EventArgs e)
    {
        Intent chooseFile = new Intent(Intent.ActionGetContent);
        chooseFile.SetType("*/*");
        chooseFile = Intent.CreateChooser(chooseFile, "Choose a file");
        StartActivityForResult(chooseFile, 1000);
    }
  

И затем я пытаюсь использовать указанный путь для открытия выбранного файла:

     protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
    {
        base.OnActivityResult(requestCode, resultCode, data);
        if (requestCode is 1000 amp;amp; resultCode is Result.Ok)
        {
            var uri = data.Data;
            string path = uri.Path;
            Java.IO.File file = new Java.IO.File(path);

        }
    }
  

но формат uri.Path несовместим с Java.IO.File , и файл не открывается. Как я могу получить совместимый полный путь к файлу?

Комментарии:

1. Пожалуйста, укажите значение uri. Путь и uri.String. И поясните, почему, по вашему мнению, он несовместим.

2. How can I get a compatible full path to a file? Вы не будете делать таких неприятных вещей, поскольку вы должны использовать этот uri для обработки файла. Даже если бы вы смогли преобразовать uri в путь, у вас не было бы доступа под Android 10. Ну, в основном нет.

3. @blackapps uri. Путь «/document/primary:Telegram/Telegram Images/00.jpg » и uri.String не определен

4. Может быть неопределенным, поскольку я не знаю xamarin. Я хотел узнать полный uri. Полная схема содержимого. Появится другой участник, который сообщит вам. И вы нас.

5. «uri = {content://com.android.externalstorage.documents/document/primary:Telegram/Telegram Images/00.jpg}»