我有一个方法应该根据选定的文件URI
返回从contentResolver返回的文件名和文件大小,但有时候所选的文件没有扩展名。我正在寻找一种方法来获取带有扩展名的完整文件名或以某种方式确定文件类型的方法。以下是我目前的方法
//This is the intent which triggers the file choosing
Intent fileIntent = new Intent( );
fileIntent.setType( "*/*" );
fileIntent.setAction( Intent.ACTION_GET_CONTENT );
fileIntent.putExtra( Intent.EXTRA_LOCAL_ONLY, true );
startActivityForResult( fileIntent, REQUEST_CODE_FILE );
//Method in onActivityResult
Uri selectedFile = intent.getData();
Cursor cursor = null;
String fileName = null;
int fileSize = 0;
try {
cursor = getContentResolver().query( selectedFile, null, null, null, null );
cursor.moveToFirst();
fileName = cursor.getString( cursor.getColumnIndex( OpenableColumns.DISPLAY_NAME ));
fileSize = cursor.getInt( cursor.getColumnIndex( OpenableColumns.SIZE ) );
}catch( Exception ex ){
ex.printStackTrace();
}finally {
if( cursor != null ) {
cursor.close();
}
}
答案 0 :(得分:1)
我正在寻找一种获取扩展名
的完整文件名的方法
OpenableColumns.DISPLAY_NAME
不一定是文件名。
或确定文件类型的方法
在getType()
上致电ContentResolver
,提供Uri
。这应该返回Uri
的有效MIME类型。