我需要获取要上传的文件的名称和扩展名。我让用户使用Intent调用选择文件,并通过以下方式获取URI:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
/* stuff */
Uri uri = data.getData();
String filePath = data.getData().getPath();
Log.d("filePath ",filePath);
Log.d("URI ", uri.toString());
String fileName = (new File(filePath)).getName();
Log.d("fileName ",fileName);
但结果是这样的:
com.blah.blah D/URI: content://com.android.providers.downloads.documents/document/354
com.blah.blah D/filePath: /document/354
com.blah.blah D/fileName: 354
文件名甚至不是354!它是一个PDF文件(例如“Bus e-Ticket.pdf”或“Xender.apk”)
String fileName = (new File(filePath)).getAbsolutePath();
也会得到相同的结果。我怎样才能获取磁盘上的文件名/扩展名?
ContentResolver
API - pskink