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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© XinWen 中级黑马   /  2014-4-30 18:26  /  1242 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package day30;

import java.io.File;

public class LsAll {

        public static void main(String[] args) {
                listAll("c:\\");
        }
       
        public static void listAll(String pDir){
                // 指定目录的 File
                File _Dir = new File(pDir);
                //目录内容
                String[] _list = null;
               
                if(_Dir.exists()){
                        if(_Dir.isFile()){
                                return;
                        }else{
                               
                                _list = _Dir.list();
                                for(String item:_list){
                                        // 目录中 子 文件 的 File 对象
                                        File _Child = new File(_Dir, item);
                                       
                                        if(_Child.isFile()){
                                                System.out.println(item);
                                        }else{
                                                System.out.println("\t"+item);
                                                listAll(item);
                                        }
                                       
                                }
                                System.out.println("---------------------------------------------------");
                        }
                }
        }

}

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

3 个回复

正序浏览
很明显,你判断的是封装的那个对象是不是以个标准的文件,.txt也是以个文件啊,你这样递归想得到什么?你应该是想判断一个文件是否是目录文件,而不是判断他是不是“一个文件”,是目录文件才可以继续往里走,递归出所有的文件和文件夹,这里主要是你没理解isFile的用法。
很晚了、、、、洗洗还是睡吧

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
宋超2356 发表于 2014-4-30 18:41
应该是这个意思吧~

是这个意思 可是 我那个 为什么 不可以
回复 使用道具 举报


  1. import java.io.File;

  2. public class Digui {

  3.         public static void main(String[] args) {
  4.         File dir = new File("c:\\");
  5.         showDir(dir);
  6.         }
  7.         
  8.         public static void showDir(File dir) {
  9.                 System.out.println(dir);
  10.                 File[] files = dir.listFiles();
  11.                 for(int x = 0;x <files.length;x++) {
  12.                         if(files[x].isDirectory())
  13.                                 showDir(files[x]);
  14.                         else
  15.                                 System.out.println(files[x]);
  16.                 }
  17.         }
  18. }
复制代码


应该是这个意思吧~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马