获取带扩展名的完整文件名

时间:2014-09-06 15:01:14

标签: android android-contentresolver

我有一个方法应该根据选定的文件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();
        }
    }

1 个答案:

答案 0 :(得分:1)

  

我正在寻找一种获取扩展名

的完整文件名的方法

OpenableColumns.DISPLAY_NAME不一定是文件名。

  

或确定文件类型的方法

getType()上致电ContentResolver,提供Uri。这应该返回Uri的有效MIME类型。