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 秒) - 正常终止
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 秒) - 正常终止
{
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.
}
]
]
用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]);
}
}
}