Android Uri获取真实路径以及文件名的方法【转】

时间:2023-03-10 03:23:20
Android Uri获取真实路径以及文件名的方法【转】

原文地址:https://blog.****.net/MikoGodZd/article/details/50979653

在Android 编程中经常会用到uri转化为文件路径 
下面是4.4后通过Uri获取路径以及文件名一种方法

public static String getRealFilePath( final Context context, final Uri uri ) {
if ( null == uri ) return null;
final String scheme = uri.getScheme();
String data = null;
if ( scheme == null )
data = uri.getPath();
else if ( ContentResolver.SCHEME_FILE.equals( scheme ) ) {
data = uri.getPath();
} else if ( ContentResolver.SCHEME_CONTENT.equals( scheme ) ) {
Cursor cursor = context.getContentResolver().query( uri, new String[] { MediaStore.Images.ImageColumns.DATA }, null, null, null );
if ( null != cursor ) {
if ( cursor.moveToFirst() ) {
int index = cursor.getColumnIndex( MediaStore.Images.ImageColumns.DATA );
if ( index > -1 ) {
data = cursor.getString( index );
}
}
cursor.close();
}
}
return data;
}

等到的路径 /storage/emulated/0/图片/浪费-林宥嘉.mp3

怎么获取文件名呢?

String path="/storage/emulated/0/图片/浪费-林宥嘉.mp3";
String b = path.substring(path.lastIndexOf("/") + 1, path.length());

通过索引最后一个/就可以在String中截取了