2012-10-31 109 views
0

我正在使用下面的代碼來瀏覽和從SD卡中選擇文件。在Android中打開文件

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("file/*"); 
startActivityForResult(intent,PICKFILE_RESULT_CODE); 

當用戶選擇了一個文件,我取使用此行代碼的路徑

String picturePath = data.getData().getPath(); 

但是當我嘗試使用打開該文件下面的代碼,我收到文件未發現異常

InputStream inputStream = getContentResolver().openInputStream(Uri.fromFile(new File(picturePath))); 

我得到這個作爲路徑選擇的文件

/external/images/media/36 

我該如何在android中做到這一點?

感謝

+0

你用什麼版本的android測試? – Marcelo

+0

我正在使用android 2.2 – Zach

+0

該路徑有些奇怪,它缺少文件擴展名。它看起來像你正在選擇一個圖像,所以應該有一個文件擴展名。 – Marcelo

回答

1

你嘗試:

InputStream inputStream = getContentResolver().openInputStream(data.getData()); 

另外,如果你想使用一個文件:

http://developer.android.com/reference/java/io/FileInputStream.html

一定要使用getAbsolutePath(),而不是getPath();

+0

嗨對不起:)。它適用於某些設備,但在舊版本中它仍然返回與上述相同的內容。我正在測試android 2.2 – Zach