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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangyinhui 中级黑马   /  2013-4-2 19:29  /  1192 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yangyinhui 于 2013-4-2 22:34 编辑
  1. /*
  2. * 从键盘接收一个文件夹路径
  3. * 统计该文件夹大小
  4. */
  5. public class Exercise4 {

  6.         public static void main(String[] args) {
  7.                 File dir = Exercise2.getDir();
  8.                 System.out.println(getDirLength(dir));
  9.         }
  10.         
  11.         public static long getDirLength(File dir) {
  12.                 int length = 0;                                                // 定义变量用来统计大小
  13.                 File[] subFiles = dir.listFiles();        // 获取所有子文件
  14.                 for (File subFile : subFiles)                 // 遍历子文件
  15.                         length += subFile.isFile() ? subFile.length() : <font style="background-color: deepskyblue;" color="black">getDirLength(subFile);</font>                // 文件大小直接累加, 文件夹大小递归之后累加
  16.                 return length;
  17. }
  18. }
  19. 问题 : getDirLength(subFile);  执行后length+=是怎样执行的
复制代码

点评

看看楼下给你的建议  发表于 2013-4-2 21:32

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1 新人加油

查看全部评分

3 个回复

倒序浏览
大哥你这写的什么呀!把代码认真复制粘贴行不?后面的是错误语句吧?
回复 使用道具 举报
length += subFile.isFile() ? subFile.length(): getDirLength(subFile);这句话是这么执行的!
先执行subFile.isFile(),得到的是真还是假,如果是真,执行subFile.length(),得到结果与length相加;如果为假,执行: getDirLength(subFile);
回复 使用道具 举报
若还有问题,继续追问; 没有的话,将帖子分类改成【已解决】哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马