Android: как получить полный путь к файлу, хранящемуся в папке на SD-карте?

Я работаю в android. я хочу получить полный путь к файлу, выбранному пользователем. мои файлы
хранятся в SDCard. но может быть в папке на sd-карте.

У меня на sdcard есть несколько папок. Я хочу получить полный путь к файлу, по которому я щелкаю.

Предположим, у меня есть изображение peacock.png в папке image / birds.

Итак, путь mnt/sdcard/image/birds/peacock.png

Подскажите, пожалуйста, как получить полный путь к файлу.

Если вам понадобится мой код, который я использую для помощи, скажите, что я пришлю его сюда.

Заранее спасибо.


person Pushpendra Kuntal    schedule 11.10.2011    source источник
comment
Как узнать, какие файлы показывать пользователю, если вы еще не знаете путь?   -  person brianestey    schedule 11.10.2011
comment
Сэр, у меня есть программа выбора файлов, в которой отображаются все файлы и папки, после чего пользователь может легко выбрать файл, который он хочет выбрать. я должен отправить свой файл для этой функции?   -  person Pushpendra Kuntal    schedule 11.10.2011
comment
Пожалуйста, посмотрите мой файл для выбора файла, чтобы вы могли легко предложить мне, что мне делать, чтобы получить полный путь, выбранный пользователем. пожалуйста, просмотрите этот файл mediafire.com/?c2860mcfb3vf9bf   -  person Pushpendra Kuntal    schedule 11.10.2011
comment
Я добавил ответ ниже после проверки вашего файла. Это поможет?   -  person brianestey    schedule 13.10.2011


Ответы (2)


Вот фрагмент кода из этого руководства, в котором показана реализация намерения файла выбора:

    protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{
   if (requestCode == PICK_REQUEST_CODE)
   {
   if (resultCode == RESULT_OK)
   {
      Uri uri = intent.getData();
      String type = intent.getType();
      LogHelper.i(TAG,"Pick completed: "+ uri + " "+type);
      if (uri != null)
      {
         String path = uri.toString();
         if (path.toLowerCase().startsWith("file://"))
         {
            // Selected file/directory path is below
            path = (new File(URI.create(path))).getAbsolutePath();
         }

      }
   }
   else LogHelper.i(TAG,"Back from pick with cancel status");
   }
}

Как видите, ваш метод onActivityResult() возвращает вам Intent, который содержит путь к файлу, который можно извлечь с помощью метода intent.getData(). Затем вы просто создаете объект File, используя этот путь, и получаете абсолютный путь к нему, используя метод file.getAbsolutePath(). Надеюсь это поможет.

person Egor    schedule 11.10.2011
comment
Во-первых, в данном руководстве указан неверный URL. и код, который вы написали, дает сбой. - person Sagar Nayak; 23.08.2016

Если вы имеете в виду onFileClick, ему передается Option. Кажется, что ваш класс Option содержит полный путь, поскольку он передается в конструктор, например:

new Option(ff.getName(),"Folder",ff.getAbsolutePath())

Вы не можете как-нибудь добраться до этой собственности?

person brianestey    schedule 11.10.2011