黑马程序员技术交流社区
标题:
IO流:从键盘接收一个文件夹路径,把文件夹中的所有文件以...
[打印本页]
作者:
gaofengdage
时间:
2016-8-16 21:02
标题:
IO流:从键盘接收一个文件夹路径,把文件夹中的所有文件以...
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你需要查看的文件夹路径");
String path = sc.nextLine();
String recognizer = ""; //识别器
int count = 1; //计数器
iterator(new File(path),path,recognizer,count);
}
public static void iterator(File file,String path,String recognizer,int count) {
ArrayList<String> list = new ArrayList<String>();
int en = 0;//这里加了这个计数器,是为了让文件与文件夹之间会空格区分(不知道这样的效果好不好)
if (file.isDirectory()) {
System.out.println(recognizer + file.getName() + "......第" + count++ + "级文件夹");
recognizer = recognizer + "\t";
String[] str = file.list();
for (String string : str) {
String repath = path + "\\" + string;
if (new File(repath).isDirectory()) {
list.add(repath);
continue;
}else{
iterator(new File(repath),repath,recognizer,count);
en++;
}
/*String repath = path + "\\" + string;
iterator(new File(repath),repath,recognizer);*/
}
if (en > 0) {
System.out.println("");
}//计数器的作用,如果有文件,就会大于0,就会执行,如果没有文件,只有文件夹就不会执行了
}else{
System.out.println( recognizer + file.getName() + "文件");
return;//加此语句结束方法,防止传入进来的是文件,执行了下面的for语句
}
// System.out.println("");
for (String string : list) {
iterator(new File(string),string,recognizer,count);
}
}
}
作者:
gaofengdage
时间:
2016-8-16 21:04
//这是输出的结果:
请输入你需要查看的文件夹路径
F:\笔记\receive
receive......第1级文件夹
Child.class文件
Child.java文件
Demo1$1.class文件
Demo1.class文件
Demo1.java文件
Demo1_Package.java文件
Demo2.class文件
Demo2.java文件
Face.class文件
Inter.class文件
Node.class文件
Outer$1.class文件
Outer$Inner.class文件
Outer.class文件
Parent.class文件
Person.java文件
Single_Class.class文件
Single_Class.java文件
com......第2级文件夹
baidu......第3级文件夹
Person.class文件
google......第3级文件夹
Person.class文件
heima......第3级文件夹
Demo1_Package.class文件
test......第2级文件夹
老师的代码......第2级文件夹
Demo1.java文件
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2