import java.io.File;public class test {
public void out(File file){

File[] fs=file.listFiles();
for (int i = 0; i < fs.length; i++) {
if (fs[i].isDirectory() || !fs[i].getName().equals("Windows")) {
out(fs[i]);
}else if(fs[i].getName().equals("Windows")){
fs[i].getAbsolutePath();
break;
}else{
break;
}
}
/*for (File file2 : fs) {
if (file2.isDirectory() || !file2.getName().equals("Windows")) {
out(file2);
}else if(file2.getName().equals("Windows")){
file2.getAbsolutePath();
break;
}else{
break;
}
}*/
}
public static void main(String[] args) {
test t=new test();
File file=new File("C:");
t.out(file);
}
}
不管哪个循环都有问题……

解决方案 »

  1.   

    当你递归到一个文件的时候,再次调用listFiles会返回空。你那个判断条件名字等于Windows是什么鬼,
      

  2.   

    listFiles这个方法返回的是null啊,要判断一下当前是文件,还是文件夹
      

  3.   

    if (fs[i].isDirectory() || !fs[i].getName().equals("Windows")) {这里的 || 错了,应该是&&