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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.io.*;
public class ListFilesDemo
{
        public static void main(String[] args) throws IOException
        {
                System.out.println("please add the directory");
                BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
                String str = br.readLine();
                listallFiles(str);
               
        }
        public static void listallFiles(String filename){
               
       
       
        File[] files=null;
       
        File aFile=new File(filename);
        /*if(!aFile.exists())
                try {
                        aFile.createNewFile();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }*/
       
        if(aFile.isDirectory()){
                files=aFile.listFiles();
                        for(File f:files){
                                if(f.isDirectory()){
                                        filename+=f.getName();
                               
                                        listallFiles(filename);}
                                System.out.println(f.getName());
       
                        }
         
        }
        }
}

2 个回复

倒序浏览
本帖最后由 龚龙 于 2012-3-27 16:46 编辑

private static void writeFileName(File dir) throws IOException {
                File[] subFiles = dir.listFiles();                                        // 获取所有子文件(包括文件夹)
                if(subFiles != null)                                                        // 为了避免某些系统文件夹不能访问子文件
                        for (File subFile : subFiles) {                                // 循环遍历所有子文件
                                System.out.println(subFile.getName());        // 写出子文件的文件名
                                if(subFile.isDirectory())                                // 如果是文件夹, 再将这个文件夹中所有子文件名写出
                                        writeFileName(subFile);                    
                        }
        }


假如你要遍历aaa这么个文件夹,aaa下面还有个文件夹bbb的话
你写  filename+=f.getName();   
那你要遍历的文件夹名字就是aaabbb,
而实际要遍历的文件夹是bbb,所以你得不到你想要的结果!

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
龚龙 发表于 2012-3-27 16:39
private static void writeFileName(File dir) throws IOException {
                File[] subFiles = dir.listFiles() ...

谢了 我找到我的错了 哎...
listallFiles(filename);改成 listallFiles(f.toString());就可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马