Как получить путь к файлу для любого выбранного файла на Xamarin Android - PullRequest
0 голосов
/ 26 апреля 2018

Как я могу получить путь из любого файла, который я получаю из локального или внешнего хранилища на Android? Вот мой код:

                Intent = new Intent(Intent.ActionOpenDocument);
                string[] mimetypes =
                 {
                    "application/pdf", "image/png", "image/jpeg", "image/tiff", "application/msword",
                    "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
                    "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                };
                Intent.PutExtra(Intent.ExtraMimeTypes, mimetypes);
                Intent.SetType("*/*");

                Intent.SetAction(Intent.ActionGetContent);
                Intent.AddCategory(Intent.CategoryOpenable);

                StartActivityForResult(Intent.CreateChooser(Intent, "Select file"), Constant.PickPDFId);

И результаты OnActivityResults, которые я получил:

         base.OnActivityResult(requestCode, resultCode, data);

        if (requestCode == Constant.PickPDFId && resultCode == Result.Ok && data != null)
        {
            var FilePath= data.Data.Path;

        }

FilePath имеет двоеточие между 'document / 3137-3837: Скриншоты / Screenshot_2018.png . Как я могу получить правильный путь без двоеточия?

1 Ответ

0 голосов
/ 27 апреля 2018

Filepath, который вы получили здесь:

var FilePath= data.Data.Path; 

- это всего лишь URI, вам нужно преобразовать его в фактический путь к файлу, но поскольку вы возвращаете типы MIME varius, вам нужно обрабатывать URI по-другому,

Этот обновленный ответ из поста должен помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...