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

Java 如何在Android上使用Intent获取文件夹路径,java,android,Java,Android,要获取我使用的文件路径,请执行以下操作: Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); intent.addCategory(Intent.CATEGORY_OPENABLE); Intent.ACTION\u GET\u内容不允许选择文件夹。 但是如何获取文件夹/目录路径呢 API等级19 在没有第三方库的情况下,有没有办法做到这一点 获取我使用的文件 这段代码与文件没有什么关系。

要获取我使用的文件路径,请执行以下操作:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE); 
Intent.ACTION\u GET\u内容不允许选择文件夹。 但是如何获取文件夹/目录路径呢

API等级19

在没有第三方库的情况下,有没有办法做到这一点

获取我使用的文件

这段代码与文件没有什么关系。内容!=文件

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

为此构建您自己的UI。或者,使用

在没有第三方库的情况下,有没有办法做到这一点

没有为选择文件系统目录定义的平台
Intent
ACTION\u OPEN\u DOCUMENT\u TREE
允许用户在Android 5.1+上选择文档树,但文档树不一定是文件系统目录,正如
ACTION\u GET\u CONTENT
ACTION\u OPEN\u DOCUMENT
不一定涉及文件

获取我使用的文件

这段代码与文件没有什么关系。内容!=文件

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

为此构建您自己的UI。或者,使用

在没有第三方库的情况下,有没有办法做到这一点


没有为选择文件系统目录定义的平台
Intent
ACTION\u OPEN\u DOCUMENT\u TREE
允许用户在Android 5.1+上选择文档树,但文档树不一定是文件系统目录,正如
ACTION\u GET\u CONTENT
ACTION\u OPEN\u DOCUMENT
不一定涉及文件一样。

首先在活动类中创建常量:

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);

首先,在活动类中创建常量:

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);

对于拾取任何文件夹,您可以使用此

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"); }
下面是一个示例,您可以这样做,希望这充分说明:

对于拾取任何文件夹,您可以使用此

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"); }
下面是一个示例,您可以这样做,希望这充分说明:

我使用这种方法。操作\u获取\u内容不允许您选择文件夹。只有文件。我使用这种方法。操作\u获取\u内容不允许您选择文件夹。只有文件。