import java.io.*;public class GetDirRes {
private String dir; public GetDirRes(String dir) {
this.dir=dir;
}
public int getAllFiles() {  //取所有文本文件
int result=0;
try {
File f=new File(dir);
String[] all= f.list();
for(int i=0;i<all.length;i++) {
File single = new File(dir + "\\" + all[i]);
if(single.isFile()) {
//判断是不是.txt文件
if(single.toString().substring(single.toString().lastIndexOf((int)'.')+1).equals("txt")) {
result += 1;
System.out.println(single.toString());
}
} else
result+=new GetDirRes(single.toString()).getAllFiles();
}
} catch(Exception e) {
System.err.println(e.getMessage());
}
return result;
} public long getSize() {  //取目录大小
long result=0;
try{
File f=new File(dir);
String[] all=f.list();
for(int i=0;i<all.length;i++) {
File single =new File(dir + "\\" + all[i]);
if(single.isFile()) 
result += single.length();
else
result += new GetDirRes(single.toString()).getSize();
}
} catch (Exception e) {
System.err.println(e.getMessage());
}
return result;
}
public static void main(String[] args) {
GetDirRes g =new GetDirRes("c:\\tomcat");
int all=g.getAllFiles();
long size=g.getSize();
System.out.println(all + " text files and total size is " + size + " Kb");
}
}结果:
---------- java(no param) ----------
c:\tomcat\README.txt
c:\tomcat\RELEASE-NOTES-4.1.txt

43 text files and total size is 28362325 Kb输出完成 (耗时 1 秒) - 正常终止

解决方案 »

  1.   

    楼上都说清楚了,用io很容易实现,看看javadoc吧
      

  2.   

    java.io.File root = new java.io.File(uploadPath);                  if(root.exists())
                      {
                             java.io.File[] directories = root.listFiles();
                             for (int j = 0; j < directories.length; j++)
                             {
                                    if (directories[j].isDirectory())
                                    {
                                      java.io.File[] files = directories[j].listFiles();
                                      // do what you want to do.
                                     }
                             ]
                  ]
      

  3.   


    用FileFilter或FilenameFilter//Test.java
    import java.io.*;
    class TxtFileFilter implements FileFilter {
        public boolean accept(File file) {
           if (file.isDirectory())
               return false;
           return file.getName().endWith(".txt");
        }
    }public class Test {
        public static void main(String args[]) {
            File file = new File(".");
            // 列出当前目录下说有的.txt文件
            File []txtFiles = file.listFiles(new TxtFileFilter ());        for (int i=0; i<txtFiles.length; i++) {
                System.out.println(txtFiles[i]);
            }
        }
    }