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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 simonqian 于 2013-5-9 21:26 编辑

package test1;
import java.io.File;
import java.io.IOException;
public class FileDemo
{
public static void main(String[] args) throws IOException
{
  File f = new File("d:\\MiOne");
  showDir(f);
}
//递归方法
public static void showDir(File f)
{
  System.out.println(f);
  File[] ff = f.listFiles();
  
  for(int i=0;i<ff.length;i++)
  {
   if(ff.isDirectory())
    showDir(ff);
   else
    System.out.println(ff);
  }
}
}

如果把  File f = new File("d:\\MiOne");改为File f = new File("d:\\");也没有用求解?

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 新人鼓励

查看全部评分

8 个回复

倒序浏览
占楼,解题中。
回复 使用道具 举报
如果你改成其他的文件夹或许是可以的。你为什么出现空指针异常,那是因为,这个文件夹或者这个盘符下有隐藏文件,并且是系统级别的。而这种文件,通过这个手段是无法访问的。所以无法完成,如果改成其他文件夹应该可以,你试试看

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
          差不多跟LS说的,通常就是当搜索路径中存在受保护权限的文件时就会无法访问,返回空指针异常。
          解决方案: (只针对普通级别的保护权限,如果要解决系统高级保护权限,也可以解决,前提LZ电脑技术够硬或者勇于冒副作用的风险,O(∩_∩)O~,太调侃了)
          说一下,当了解吧,你可以根据Dos控制台出现空指针异常时正在访问的文件,记录它的名字,然后到相应的目录下查找那个文件夹(我是win7的,所以文件夹会有一个锁的小符号),双击那个文件夹,会询问是否获取权限,可以点是,如果进的去,那么它以后就可以被Java程序访问;
        如果进不去或者找不到那个文件夹(即使你是显示隐藏文件也看不到,不过可以在那个改显示隐藏文件的地方有个取消隐藏受系统保护的文件的勾,取消了就能看),但是要改变文件权限就是比较有风险的了,这个之前有搞过,找时间我贴个关于修改文件权限的技术贴吧,O(∩_∩)O~。(因为我也不是大神,所以举例也将是不是系统级文件,O(∩_∩)O~,不过肯定是同理的)

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 赞一个!

查看全部评分

回复 使用道具 举报
JAVA中靠流是无法访问隐藏文件的!
回复 使用道具 举报
Jacky_Chen1990 发表于 2013-5-9 18:02
如果你改成其他的文件夹或许是可以的。你为什么出现空指针异常,那是因为,这个文件夹或者这个盘符下有隐藏 ...

对这个文件夹下是存在隐藏文件
回复 使用道具 举报
zms2100 发表于 2013-5-9 18:58
差不多跟LS说的,通常就是当搜索路径中存在受保护权限的文件时就会无法访问,返回空指针异常。
  ...

同意你的看法,看来不是我们菜鸟能懂的了的,呵呵
回复 使用道具 举报
simonqian 发表于 2013-5-9 21:12
同意你的看法,看来不是我们菜鸟能懂的了的,呵呵

如果想了解,详细的修改文件权限操作可以看这贴:
http://bbs.itheima.com/forum.php ... mp;extra=#pid319561
另外提醒你一下,问题解决了,记得把问题贴重新编辑,修改成已解决,那些版主们很生气,后果很严重,呵呵,开玩笑,帮忙提醒下,版主们都不容易的。
回复 使用道具 举报
zms2100 发表于 2013-5-9 21:23
如果想了解,详细的修改文件权限操作可以看这贴:
http://bbs.itheima.com/forum.php?mod=viewthread&tid ...

哦了,3Q
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马