我刚开始在Android Studio中编码并感觉很棒.. !!
如何为“目录选择器”编写代码。即,当单击一个按钮时,可以显示一个简单的对话框/活动屏幕,该屏幕可以显示目录列表。
此外,还希望将该目录中的所有文件存储到Array变量中。 (单击确定按钮后)。
PS:我在这里搜索过,找到了一些很酷的'文件选择'但是我正在寻找目录选择器......!
提前致谢。
答案 0 :(得分:20)
尝试使用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);
从onActivityResult data.getData()
获取结果Uripublic void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode) {
case 9999:
Log.i("Test", "Result URI " + data.getData());
break;
}
}
答案 1 :(得分:3)
您也可以使用一些库。
例如:
https://github.com/passy/Android-DirectoryChooser
答案 2 :(得分:0)
有一个开放源代码库,它执行目录选择器以及打开/保存文件活动。可以在GitHub https://github.com/BoardiesITSolutions/FileDirectoryPicker上找到它。
适用于Android API级别17及更高版本
免责声明:我写了
答案 3 :(得分:0)
从Android 10(API 29)开始,不建议直接访问外部存储,而推荐使用存储访问框架https://developer.android.com/guide/topics/providers/document-provider
答案 4 :(得分:-6)
使用以下代码选择目录
Intent result = new Intent();
result.putExtra("chosenDir", path);
setResult(RESULT_OK, result);
并且选择路径覆盖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");
}
}