2

hello we have file picker and want when user select file with file picker , return path of selected file for upload. now i want how can get path of selected file . i want the path of file like this -- > /mnt/sdcard/DCIM/13.jpg

code :

private void fnFileChooser(){
    Intent intent=new Intent(Intent.ACTION_GET_CONTENT);
    intent.setType("*/*");
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    try{
        startActivityForResult(
                Intent.createChooser(intent, "Select a File to Upload"),
                fileSelectedCode);
    }
    catch (android.content.ActivityNotFoundException ex) {
    // Potentially direct the user to the Market with a Dialog
    Toast.makeText(this, "Please install a File Manager.",
            Toast.LENGTH_SHORT).show();
    }
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {


            if (resultCode == RESULT_OK) {
                // Get the Uri of the selected file
                Uri uri = data.getData();
                path=uri.getPath();
                txtAddress.setText(uri.getPath());
                ImageView img=(ImageView) findViewById(R.id.imgTest);
                img.setImageURI(uri);
                /*String path = FileUtils.getPath(this, uri);
                Log.d(TAG, "File Path: " + path);*/
                // Get the file instance
                // File file = new File(path);
                // Initiate the upload
            }


    super.onActivityResult(requestCode, resultCode, data);
}
m-355
  • 21
  • 1
  • 5

2 Answers2

1

That is not reliable with ACTION_GET_CONTENT, as there is no requirement that the Uri get back point to a file that you can access. The file might be on internal storage of an app, or on removable media, or even in the cloud somewhere. For what feels like the fifth time this week... a Uri is not a file.

Use the Uri as designed, via methods on ContentResolver like openInputStream() and getType().

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
0

Try to use these code to get the path of file which one is created with openFileOutput

public String getFilePath(Context context,String YourFileName)
        {
            File f= context.getFileStreamPath(YourFileName);
            return f.getAbsolutePath();
        }
Abdul Rizwan
  • 3,904
  • 32
  • 31