import java.io.File;
/**
- @author * *尝试遍历每个文件夹,并列出所有内容 *分析:
- 1.获取文件件对象
- 2.判断是否为文件夹
- 3.是 继续判断 是否为文件夹
-
4.否,则打印所有文件的文件名
*使用遍历
*/
public class BianliWenjianjia {
public static void main(String []args){
// File file=new File("E:\inst\3-图形图像\素材2011\eclipse");
File file=new File("F:\");
file(file,0);
}
public static void file( File file,int i) {
//创建文件对象,指定根目录
System.out.println(getSpace(i)+file.getName());
//定义一个变量用于记录目录层次
i++;
//获取文件对象File [] fileArr=file.listFiles(); for(int index=0;index<fileArr.length;index++)
// for(File fileCon:fileArr)
{//遍历
if(fileArr[index].isDirectory())
// if(fileCon.isDirectory())
{
file(fileArr[index],i);
// file(fileCon,i);
}
else
{
System.out.println(getSpace(i)+fileArr[index].getName());
// System.out.println(getSpace(i)+fileCon.getName());
}
}
if(file.getParentFile()==file)
return ;}
/**
- @param i 目录层次
-
@return 空格字符
*/
private static String getSpace(int i) {StringBuffer sb=new StringBuffer();
sb.append("|--");
for(int a=0;a<i;a++)
{
sb.insert(0,"| ");
}
return sb.toString();
}
}
在这个程序中若指定具体某个文件夹就可以成功遍历,但是指定具体盘符时就会报java.lang.NullPointerException,本人开始以为是系统权限问题,以管理员权限运行也出现同样的错误,所以向各位前辈请教!请帮忙分析下这是什么原因!学生在此谢过了!