1

以下のようなパスと uri を返す MediaScannerConnectionClient があります。

path=/sdcard
uri= content://media/external/images/media/9834

uri の絶対パスを見つける方法は? 私は以下を試して失敗し、行 Log.d(TAG,"after new File");
実行されません。

行の実行にエラーがあるようです

new File(new URI(uri.getPath())) 

どんな助けでも大歓迎です。-よろしく、まんじゅう

File myFile=null;
try {
    myFile=new File(new URI(uri.getPath()));
    Log.d(TAG,"after new File");
} catch (URISyntaxException e) {
    e.printStackTrace();
} catch (IllegalArgumentException e){
    e.printStackTrace();
}

if(myFile!=null && myFile.exists()){
    Log.d(TAG,"file exists");
    Log.d(TAG,"FilePath: "+myFile.getAbsoluteFile());
}else{
    Log.d(TAG,"given file DOESNOT exist");
4

2 に答える 2

4

デフォルトでは、 MediaColumnを使用して表される MediaStore 内のすべてのメディア コンテンツと、データ ストリームを含むその DATA列 - 絶対ファイル パス。したがって、次のように MediaStore に保存されているメディアの絶対パスを取得できます。

Cursor c = getContentResolver().query(
    Uri.parse"content://media/external/images/media/1"),null,null,null,null);
c.moveToNext();
String path = c.getString(c.getColumnIndex(MediaStore.MediaColumns.DATA));
c.close();
于 2013-08-23T07:21:04.750 に答える
2

Get filename and path from uri from mediastore の回答で getRealPathFromURI(uri) メソッドを使用しています

返されたカメラのURIを変換する

content://media/external/images/media/35733

/ストレージ/エミュレート/0/DCIM/カメラ/1377243365736.jpg

于 2013-08-23T07:47:24.257 に答える