我想获取Android中某个目录的路径。
我最终使用Android 6+默认文件管理器来选择某个目录,如下所示:
div
但是,当我这样做时,我会为下载目录获得类似Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
i.addCategory(Intent.CATEGORY_DEFAULT);
startActivityForResult(Intent.createChooser(i, "Choose directory"), 1);
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode) {
case 1:
Log.d("Files", "Path: " + path);
File directory = new File(data.getData().getPath());
File[] files = directory.listFiles();
Log.d("Files", "Size: "+ files.length); // files is becomes null
for (int i = 0; i < files.length; i++)
{
Log.d("Files", "FileName:" + files[i].getName());
}
break;
}
}
的路径。这会导致无效路径和异常。
访问路径的正确方法是什么?
编辑:
经过一个小时的咖啡和研究后,我得出的结论是没有好办法做我想做的事。虽然有几种解决方法,但我测试的都是期望文件资源而不是目录,从而导致致命的异常:
/tree/downloads
。
但是,在我的情况下,我希望目录获取文件。
因此,我默认只使用Android提供的公共存储目录,在那里很容易获得路径。如果某人有一个适用于任何类型目录的通用解决方案,那将非常感激。