如何在Android上使用Intent获取文件夹路径

时间:2018-06-29 12:19:16

标签: java android

要获取我使用的文件路径:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE); 

Intent.ACTION_GET_CONTENT不允许选择文件夹。 但是如何获取文件夹/目录路径?

API级别19。

有没有第三方库的方法吗?

3 个答案:

答案 0 :(得分:1)

  

要获取我使用的文件

该代码与文件无关。内容!=文件。

  

但是如何获取文件夹/目录?

为此构建您自己的UI。或者,使用a third-party directory chooser library

  

有没有第三方库的方法吗?

没有平台定义的Intent用于选择文件系统目录。 ACTION_OPEN_DOCUMENT_TREE将允许用户在Android 5.1+上选择文档树,但是文档树不一定是文件系统目录,就像ACTION_GET_CONTENTACTION_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