如何从onActivityResult获取任何文件路径,名称,扩展?
我的代码是:如何从onActivityResult获取任何文件路径,名称,扩展?
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);
如何获得文件路径名,扩展名? (假设文件在DOC,PDF,CSV格式)
您可以使用
intent.putExtra("path", your_path);
把字符串附加到意图,并把它在onActivityResult通过
FileReturnedIntent.getStringExtra("path");
如何,他要插入的路径进入意向,如果他是从ACTION_GET_CONTENT接收意图请求? – LeoFarage 2015-09-28 03:09:23
一旦尝试,如果在如下FileReturnedIntent包含文件作为额外
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);
希望这会帮助你。
你可以使用这样
@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();
}
}
不,我不想要图像我想要其他文件,如PDF,DOC如果我想要pdf或doc文件,请帮助“MediaStore.Images.Media.DATA”是什么。 – 2015-03-03 05:20:52
我迟到了,但它可以帮助别人这里是解决方案。
Uri uri = data.getData();
ContentResolver cr = this.getContentResolver();
String mime = cr.getType(uri);
它返回文件扩展如PDF,DOC等..
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;
}
它返回你,你得到的文件名的真实路径。一位朋友使用这种方式,它非常有用。
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();
}
}
}
你从这个
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;
}
获取文件名有你有任何答案 – 2017-08-01 10:29:26