如何在android上的特定目录中读取文件和文件夹

时间:2014-01-04 18:31:04

标签: android io

我正在尝试读取用户指定的目录中的所有文件和文件夹。

我用:

File file = new File("/");
String[] files = file.list();

这可以工作,并给我一个根目录中的文件名和文件夹列表 这样可以正常工作,但当我指定其他任何内容时,“/”就会崩溃。

我该如何解决这个问题,我不是给它一个有效的路径,或者我的代码有问题吗?

1 个答案:

答案 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