递归遍历文件目录

作者在 2006-12-19 07:03:00 发布以下内容

package lovo.com;

import java.io.*;

public class  Dir
{
 public void find(String fileName)
 {
  File flDir = new File(fileName);
  System.out.println("Files in "+flDir.getAbsolutePath());
  String strFiles[] = flDir.list();

  //分别用来记录子目录的个数和文件的个数
  int intDirCount = 0,intFileCount = 0;
  //用来记录所有文件的总长度
  long lngSize = 0;

  for ( int i = 0; i < strFiles.length ; i++ )
  {
   
   String newFileName=fileName+File.separator+strFiles;
   
   File flTemp = new File(newFileName);
   
   if (flTemp.exists())
   {
    //判断是否是普通文件
    if ( flTemp.isFile() )
    {
     System.out.println(strFiles + "\t" + flTemp.length());
     intFileCount ++;
     lngSize = lngSize + flTemp.length();
    }
    //判断是否是目录
    if ( flTemp.isDirectory() )
    {
     System.out.println(strFiles + " \t<DIR> " );
     intDirCount ++;
     
     //递归调用本方法
     find(newFileName);
    }
   }
  }
  System.out.println(intFileCount + " file(s) \t" + lngSize + " bytes");
  System.out.println(intDirCount + " dir(s) ");

 }
 public static void main(String[] args)
 {
  Dir d = new Dir();
   if(args.length!=1){
            System.out.println("参数错误!请检查是否输入参数或者输入多个参数!");
            return;
          }
   d.find(args[0]);
  
  
 }
}

 

java | 阅读 1624 次
文章评论,共1条
kingyor
2007-03-07 20:46
1
这样才能把数据结构学好啊,我老觉得那东西理解起来不方便`````
游客请输入验证码