要获取我使用的文件路径:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
Intent.ACTION_GET_CONTENT不允许选择文件夹。 但是如何获取文件夹/目录路径?
API级别19。
有没有第三方库的方法吗?
答案 0 :(得分:1)
要获取我使用的文件
该代码与文件无关。内容!=文件。
但是如何获取文件夹/目录?
为此构建您自己的UI。或者,使用a third-party directory chooser library。
有没有第三方库的方法吗?
没有平台定义的Intent
用于选择文件系统目录。 ACTION_OPEN_DOCUMENT_TREE
将允许用户在Android 5.1+上选择文档树,但是文档树不一定是文件系统目录,就像ACTION_GET_CONTENT
和ACTION_OPEN_DOCUMENT
不一定涉及文件一样。>
答案 1 :(得分:0)
首先在您的活动类中创建常量:
private static final int PICKFILE_REQUEST_CODE = 100;
当您需要选择文件夹时,请使用如下意图:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("file/*");
startActivityForResult(intent, PICKFILE_REQUEST_CODE);
用户选择文件夹后,您将在
中得到结果protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICKFILE_REQUEST_CODE) {
String folderPath = data.getDataString();
//TODO
return;
}
super.onActivityResult(requestCode, resultCode, data);
答案 2 :(得分:0)
用于选择您可以使用的任何文件夹
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("file/*");
startActivityForResult(intent,PICKFILE_RESULT_CODE);
获取文件后,将其详细信息显示为
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
String FilePath = data.getData().getPath();
String FileName = data.getData().getLastPathSegment();
int lastPos = FilePath.length() - FileName.length();
String Folder = FilePath.substring(0, lastPos);
textFile.setText("Full Path: \n" + FilePath + "\n");
textFolder.setText("Folder: \n" + Folder + "\n");
textFileName.setText("File Name: \n" + FileName + "\n"); }
这是一个示例,您可以做到这一点,希望这可以完全弄清楚: http://android-er.blogspot.com/2011/04/more-for-pick-file-using.html