我正在尝试读取用户指定的目录中的所有文件和文件夹。
我用:
File file = new File("/");
String[] files = file.list();
这可以工作,并给我一个根目录中的文件名和文件夹列表 这样可以正常工作,但当我指定其他任何内容时,“/”就会崩溃。
我该如何解决这个问题,我不是给它一个有效的路径,或者我的代码有问题吗?
答案 0 :(得分:0)
/
是android的根目录,并且没有文件夹名称存储,因此当您使用时
String[] files = file.list();
你要求android给出存储里面的文件列表,这些文件甚至不存在。因此,你会遇到错误。
最佳做法是假设该文件夹可能不存在,即使您确定它将例如用户可以删除您在SD卡上创建的文件夹,这将导致您的应用程序崩溃。所以使用以下代码
if(file.exists()){
String [] filenames = file.list();
}
这只是我的猜测,但我认为您正在搜索SDCard,如果是,请使用
Environment.getExternalStorageDirectory()
有权阅读SDCard文件。
更新: - 要读取内部和外部存储器中的文件,请参阅以下链接https://stackoverflow.com/a/17546843/1979347