4

My Codes are:

1.

File file = new File(Environment.getExternalStorageDirectory(),"myFolder");

            Log.d("path", file.toString());

        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setDataAndType(Uri.fromFile(file), "*/*");
        startActivityForResult(intent,0);

2.

 @Override
    protected void onActivityResult(int requestCode, 
    int resultCode, Intent FileReturnedIntent) {
            // TODO Auto-generated method stub
            super.onActivityResult(requestCode, resultCode, FileReturnedIntent);

How to get the file path,name,extension? (suppose files are in doc,pdf,csv format)

Adrian Cid Almaguer
  • 7,815
  • 13
  • 41
  • 63
Manoj Das
  • 89
  • 1
  • 2
  • 9

6 Answers6

7

It return the file extention like pdf, doc .. etc

 public static String getMimeType(Context context, Uri uri) {
    String extension;

    if (uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) {
         final MimeTypeMap mime = MimeTypeMap.getSingleton();
        extension = mime.getExtensionFromMimeType(context.getContentResolver().getType(uri));
    } else {
        extension = MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uri.getPath())).toString());

    }

    return extension;
}

It returns you the real path where you get the file name. One friend use this way and it is really useful.

Get filename and path from URI from mediastore

public String getRealPathFromURI(Context context, Uri contentUri) {
  Cursor cursor = null;
  try { 
    String[] proj = { MediaStore.Images.Media.DATA };
    cursor = context.getContentResolver().query(contentUri,  proj, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
  } finally {
    if (cursor != null) {
      cursor.close();
    }
  }
}

You get file name from this

public String getFileName(Uri uri) {
  String result = null;
  if (uri.getScheme().equals("content")) {
    Cursor cursor = getContentResolver().query(uri, null, null, null, null);
    try {
      if (cursor != null && cursor.moveToFirst()) {
        result = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
      }
    } finally {
      cursor.close();
    }
  }
  if (result == null) {
    result = uri.getPath();
    int cut = result.lastIndexOf('/');
    if (cut != -1) {
      result = result.substring(cut + 1);
    }
  }
  return result;
}
Sohaib Aslam
  • 1,245
  • 17
  • 27
5

I am late but it can help others here is the solution.

                Uri uri = data.getData();
                ContentResolver cr = this.getContentResolver();
                String mime = cr.getType(uri);
shivpal jodha
  • 104
  • 1
  • 9
1

you can use like this

@Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);

            if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) 
            {
                Uri selectedImage = data.getData();
                String[] filePathColumn = { MediaStore.Images.Media.DATA };

                Cursor cursor = getContentResolver().query(selectedImage,
                        filePathColumn, null, null, null);
                cursor.moveToFirst();

                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                String picturePath = cursor.getString(columnIndex);
                cursor.close();
           }
}
Ram
  • 1,408
  • 13
  • 29
  • 1
    No i don't want image i want other file like pdf,doc what will be in place of "MediaStore.Images.Media.DATA" if i want pdf or doc file please help. – Manoj Das Mar 03 '15 at 05:20
0

Once try as follows if the FileReturnedIntent contains File as extras

Bundle data1=FileReturnedIntent.getExtras();
File f=(File)data1.get(key);
String path=f.getAbsolutePath();
System.out.println("The file path along with extension is : "+path);

Hope this will helps you.

Nagaraju V
  • 2,739
  • 1
  • 14
  • 19
0

Nova day in Kotlin:

val myFile = File(data?.data!!.path)
Hossein Kurd
  • 3,184
  • 3
  • 41
  • 71
-5

you can put String Extra to intent using

intent.putExtra("path", your_path);

and get it in onActivityResult by

FileReturnedIntent.getStringExtra("path");
Koma Yip
  • 5,359
  • 1
  • 11
  • 12