import java.io.File;
import java.io.FilenameFilter;
/**
* <p>Usage: 文件操作常用工具 </p>
* <P>File: FileUtil.java</P>
* @author caimaof
* @version 1.0 2009-2-5-下午01:32:23
*/
public class FileUtil {
/**
* 输入目录名和想要查找的文件的名字,程序将判断在当前目录里是否有以所给文件名命名的文件
* @param dirName 目录名
* @param fileName 文件名
* @param isSubDirInclude 是否包含子目录
* @return 文件是否存在于当前目录及其子目录
*/
public boolean isFileInDir(String dirName, String fileName,boolean isSubDirInclude) {
boolean isExists = false;
File file = new File(dirName);
FilenameFilter fl = new Filter(fileName);
if (file.isDirectory()) {
if (file.list(fl).length > 0) {
isExists = true;
return isExists;
} else if(isSubDirInclude){
//当需要搜索子目录时启用
String[] fileList = file.list();
if (isFileExist(file, fileList, fl)) {
return true;
}
}
}
return isExists;
}
/**
* 用于迭代当前目录下的所有的目录和文件
* @param file
* @param fileList
* @param fl
* @return 文件是否存在于当前目录
*/
private boolean isFileExist(File file, String[] fileList, FilenameFilter fl) {
boolean isExists = false;
for (int i = 0; i < fileList.length; i++) {
File newFile = new File(file.getAbsolutePath() + "\\" + fileList[i]);
if (newFile.isDirectory() && newFile.list(fl).length > 0) {
return true;
} else {
if (newFile.isDirectory()) {
if (isFileExist(newFile, newFile.list(), fl)) {
return true;
}
}
}
}
return isExists;
}
}
/**
* <p>Usgae: 用于过滤文件名以给定文件名开始</p>
* <P>File: FileUtil.java</P>
* @author caimaof
* @version 1.0 2009-2-5-下午01:39:33
*/
class Filter implements FilenameFilter {
String fileName;
public Filter(String fileName) {
this.fileName = fileName;
}
public boolean accept(File dir, String name) {
return name.startsWith(fileName);
}
}