简单的Android Directory选择器 - 如何?

And*_*oob 14 directory android picker filechooser

我刚开始在Android Studio中编码并感觉很棒.. !!

如何编写"目录选择器"的代码.即,单击一个按钮时,可以显示一个简单的对话框/活动屏幕,可以显示目录列表.

此外,还希望将该目录中的所有文件存储到Array变量中.(单击确定按钮后).

PS:我在这里搜索过,找到了一些很酷的'文件选择',但我正在寻找目录选择器..!

提前致谢.

小智 28

尝试使用Intent.ACTION_OPEN_DOCUMENT_TREE

Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
i.addCategory(Intent.CATEGORY_DEFAULT);
startActivityForResult(Intent.createChooser(i, "Choose directory"), 9999);
Run Code Online (Sandbox Code Playgroud)

从onActivityResult data.getData()获取结果Uri

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch(requestCode) {
        case 9999:
            Log.i("Test", "Result URI " + data.getData());
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这适用于API 21+ (8认同)
  • @Milton我的最低SDK是API 19。是否有类似的方法来实现相同的功能? (4认同)
  • 您可以使用此答案来获取实际的目录路径:/sf/answers/2085264681/ (3认同)

Dim*_*ima 5

你也可以使用一些库。
例如:https :
//github.com/passy/Android-DirectoryChooser


Anj*_*ali -9

使用下面的代码选择目录

        Intent result = new Intent();
        result.putExtra("chosenDir", path);
        setResult(RESULT_OK, result);
Run Code Online (Sandbox Code Playgroud)

并获取所选路径覆盖 onActivityResult :

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode == PICK_DIRECTORY && resultCode == RESULT_OK) {
        Bundle extras = data.getExtras();
        String path = (String) extras.get("chosenDir");

    }
}
Run Code Online (Sandbox Code Playgroud)