android:如何在sdcard中获取存储在文件夹中的文件的完整路径?

时间:2011-10-11 12:36:06

标签: android sd-card android-sdcard

我在android工作。我想获得用户选择的文件的完整路径。我的档案
存储在SD卡中。但可能在SD卡的文件夹中。

我的SD卡中有一些文件夹。我想获得我点击的文件的完整路径。

假设我在文件夹图像/鸟类中有一个图像peacock.png

所以路径是mnt/sdcard/image/birds/peacock.png

请建议我如何获取文件的完整路径。

如果您需要我用于帮助的代码,请告诉我我会将其发送到此处。

提前谢谢。

2 个答案:

答案 0 :(得分:6)

以下是this教程的代码片段,其中显示了选择文件Intent的实现:

    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()方法获取它的绝对路径。希望这会有所帮助。

答案 1 :(得分:1)

如果您在onFileClick中表示,则会传递一个Option。您的Option类似乎包含完整路径,因为它被传递到构造函数中,例如:

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

你能不能以某种方式进入那个属性?