📄 batch.java
字号:
import java.io.File;
import java.util.Vector;
/**
* 遍历指定文件夹下的某种文件。
* @author wuqingnan
* 2008-12-26
*/
public class Batch implements Runnable{
private String path;
private String filter;
private boolean isCompleted;
private Vector<String> fileNames;
public Batch(String path, String filter){
this.path = path;
this.filter = filter;
this.isCompleted = false;
new Thread(this).start();
}
@Override
public void run() {
setFileNames(traversalDirectory(path, filter));
setCompleted(true);
}
/**
* 遍历目录path下,所有后缀为filter的文件
* @param path 所要遍历的目录
* @param filter 所要查找的文件后缀
* @return 返回目录下所有后缀为filter的文件路径
*/
private Vector<String> traversalDirectory(String path, String filter){
Vector<String> fileNames = new Vector<String>();
File file = new File(path);
if(!file.exists()){
System.out.println("您输入的目录不存在!");
return fileNames;
}
else{
if(!file.isDirectory()){
System.out.println("您输入的目录不存在!");
}
else{
File[] subFiles = file.listFiles();
for(int i = 0; i < subFiles.length; i++){
if(subFiles[i].isDirectory()){
Vector<String> subFileNames = traversalDirectory(subFiles[i].getPath(), filter);
for(int j = 0; j < subFileNames.size(); j++){
fileNames.addElement(subFileNames.elementAt(j));
}
}
else{
if(subFiles[i].getPath().endsWith(filter)){
fileNames.addElement(subFiles[i].getPath());
}
}
}
}
}
return fileNames;
}
public void setFileNames(Vector<String> fileNames){
this.fileNames = fileNames;
}
public Vector<String> getFileNames(){
return this.fileNames;
}
public boolean isCompleted() {
return isCompleted;
}
public void setCompleted(boolean isCompleted) {
this.isCompleted = isCompleted;
}
/**
* @param args
*/
public static void main(String[] args) {
// 执行遍历目录
long startTime = System.currentTimeMillis();
System.out.println("程序开始运行!当前时间:" + startTime);
String path = "D:\\workspace"; //要遍历的目录
String filter = ".txt"; //要遍历的文件类型
Vector<String> fileNames; //返回满足条件的文件路径
Batch batch = new Batch(path, filter);
while(!batch.isCompleted()){
try {
Thread.currentThread().sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
fileNames = batch.getFileNames();
for(int i = 0; i < fileNames.size(); i++){
System.out.println(fileNames.elementAt(i));
}
long endTime = System.currentTimeMillis();
long time = (endTime - startTime) / 1000;
int second = (int)time % 60;
int minute = (int)(time / 60) % 60;
int hour = (int)(time / 3600);
System.out.println("程序运行结束!当前时间:" + endTime);
System.out.println("程序运行过程中共历时:" + hour + "小时" + minute + "分" + second + "秒");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -