2011-10-11 47 views
1

我正在android中工作。我想獲得用戶選擇的文件的完整路徑。我的文件
存儲在SD卡中。但可能位於SD卡中的文件夾中。android:如何獲取存儲在sdcard文件夾中的文件的完整路徑?

我在我的SD卡中有一些文件夾。我想要獲取單擊的文件的完整路徑。

假設我有一個圖像peacock.png在文件夾圖像/鳥類。

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

請建議我我如何可以得到一個文件的完整路徑。

如果你需要我的代碼,我正在使用的幫助,然後告訴我,我會在這裏發送它。

預先感謝您。

+1

如果您不知道路徑,您如何知道要顯示用戶的文件? – brianestey

+0

先生我有一個文件選擇器程序,我顯示了所有的文件和文件夾,然後用戶可以輕鬆地選擇他想要選擇的文件。我應該發送我的文件的這個功能? –

+0

請看我的文件選擇文件,所以你可以很容易地建議我該怎麼做才能獲得用戶選擇的完整路徑。請看這個文件http://www.mediafire.com/?c2860mcfb3vf9bf –

回答

6

下面是從this教程的代碼片段,顯示挑文件意圖的實現:

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()方法獲取它的絕對路徑。希望這可以幫助。

+0

首先,您提供的教程不是有效的網址。並且你寫的代碼崩潰了。 –

1

如果您的意思是在onFileClick中,它會傳遞一個選項。您的選項類似乎包含完整路徑,因爲它傳遞到構造函數中,例如:

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

難道你不知道該怎麼辦?

相關問題