A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

提示: 该帖被管理员或版主屏蔽
签名被屏蔽

8 个回复

倒序浏览
哥们,看来不用运行很长时间就会出错,有可能是权限问题。
我在细细看看你的代码琢磨琢磨。

评分

参与人数 1技术分 +1 收起 理由
杨千里 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 黑马-项泽宇 于 2012-11-28 23:28 编辑

说说我的思路:
首先看了下楼主的代码,然后在showFiles函数入口处做了断点跟踪了下,发现会有null出现。
然后在 File[] file = dir.listFiles();后面加了SYSO进行输出对象,发现确实会有空值,可能是当该目录下为空的时候会返回空值。(是目录权限问题
所以加了一个非空判断,暂时解决了你的报错,仅供楼主参考。

评分

参与人数 1技术分 +1 收起 理由
杨千里 + 1

查看全部评分

回复 使用道具 举报
按照API上的说法应该是发生了IO错误导致了listFiles方法返回null,你看一下发生null值的那一个文件夹能不能访问,有没有权限访问
回复 使用道具 举报
黑马-项泽宇 发表于 2012-11-28 23:08
哥们,看来不用运行很长时间就会出错,有可能是权限问题。
我在细细看看你的代码琢磨琢磨。
...

我运行了三四分钟才会看到。
回复 使用道具 举报
个人觉得错误出在System Volume Information这个文件夹上,
java没有对这个文件的访问权限。返回了一个null.你可以单独遍历一个盘符,应该都是到这句话就出异常。
回复 使用道具 举报
已经确定是文件夹权限的问题,有些文件夹不允许访问,你可以看一下你报错的这个信息之前的一个文件夹路径,看看能不能打开。。。。
回复 使用道具 举报
谢谢上面的各位了,自己又查阅了一下API,是目录为空的问题导致的,因为当目录为空的时候,返回值也为空,所以导致空指针异常。
回复 使用道具 举报
王震阳 发表于 2012-11-28 23:26
谢谢上面的各位了,自己又查阅了一下API,是目录为空的问题导致的,因为当目录为空的时候,返回值也为空, ...

目录为空是其中一个原因,另一个原因是文件夹不允许访问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马