【发布时间】:2018-02-14 01:38:00
【问题描述】:
我需要获取我需要上传的文件的名称和扩展名。我让用户使用 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/文件名:354
文件名甚至不是 354!它是一个 PDF 文件(比如“Bus e-Ticket.pdf”或“Xender.apk”)
String fileName = (new File(filePath)).getAbsolutePath();
也产生相同的结果。
如何获取磁盘上的文件名/扩展名?
【问题讨论】:
-
然后使用
ContentResolverAPI