黑马程序员技术交流社区
标题:
编写了递归,但是输入盘符的根目录,会报错,
[打印本页]
作者:
江月念华
时间:
2016-9-20 23:38
标题:
编写了递归,但是输入盘符的根目录,会报错,
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个文件夹路径");
String dir = sc.nextLine();
long size =0;
File fis = new File(dir);
if(!fis.exists()){
System.out.println("您输入的文件夹不存在");
}else if(fis.isFile()){
System.out.println("您输入的是一个文件,请输入文件夹");
}else{
File[] file = fis.listFiles();
for (File f : file) {
size +=getFile(f);
}
System.out.println(size);
}
}
public static long getFile(File f) {
long s = 0;
if(f.isFile()){
s = f.length();
}else{
getFile(f);
}
return s;
}
作者:
wo1026756529
时间:
2016-9-20 23:56
可以参考23天的课件
作者:
风轻云淡139
时间:
2016-9-20 23:59
应该多看看老师的代码
作者:
荔荔舟
时间:
2016-9-21 00:15
你那个递归应该先获取该文件夹路径下所有的文件和文件夹,用listFiles()方法,可以得到一个File类型的数组。然后遍历这个集合,如果是文件获取长度,如果是文件夹,就递归调用getFile方法。最好看看23天的视频课
作者:
读书可以当饭吃
时间:
2016-9-21 11:20
你这样容易造成死循环啊,假设你getFile(File f)里传入了一个E盘下的文件夹f,判断f不是文件,执行else语句getFile(f),又把f传进去了,又判断f不是文件,又else,无限循环,那就if和else两个在那玩咯,已经没你什么事了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2