全部博文(2065)
分类:
2008-12-04 12:39:50
文件1 FileManagerFilter.java这是过滤器,用来过滤文件. 下附文件2FileManager .java
import java.io.File;
import java.io.FilenameFilter;
public class FileManagerFilter implements FilenameFilter {
private String name;
private String extension;
public FileManagerFilter(String name, String extension) {
this.name = name;
this.extension = extension;
}
public boolean accept(File dir, String filename) {
boolean fileOK = true;
if (name == "*"&&extension=="*") {
return fileOK = true;
}
if (name != null) {
// 不大解理"&="的运行过程,
fileOK &= filename.startsWith(name);
}
if (extension != null) {
fileOK &= filename.endsWith('.' + extension);
}
return fileOK;
}
}
文件2FileManager .java
import java.io.File;
public class FileManager {
public static void listRoots() {
// 将根目录存入File数组roots中
File[] roots = File.listRoots();
// 打印出根目录
try {
for (int i = 0; i < roots.length; i++) {
System.out.println("======================================");
System.out.println("根目录" + roots[i] + "的文件列表:");
// System.out.println("该目录的容量为:"+roots[i].length());只有文件才有此方法才会返回字节长度,目录为0
System.out.println("======================================\n");
// 打印出根目录下的文件
File[] rootfile = roots[i].listFiles();
for (File rf : rootfile) {
System.out.println(rf);
// System.out.println("------------------------------------");
}
}
} catch (RuntimeException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
// 删除指定文件或一些文件
public void deleteFiles(String path, String inname, String inextension) {
boolean status = true;
FileManagerFilter fmf = new FileManagerFilter(inname, inextension);
File file = new File(path);
File[] filelist = file.listFiles(fmf);
// System.out.println(filelist.length); 此语句用于测试
if (filelist.length != 0) {
System.out.println("**************删除文件*************");
for (File fl : filelist) {
// boolean delfil = fl.delete();
System.out.println(fl + (fl.delete() ? " 成功" : " 没有成功")
+ "被删除!");
}
} else {
System.out.println("根据您所给的条件,没有找到要删除的文件!");
}
}
// 删除所有目录下所有文件,但是目录没有删除,哈哈其实效果一样
public void deletAllFile() {
FileManager fmqq53227117 = new FileManager();
File[] roots = File.listRoots();
for (int i = 0; i < roots.length; i++) {
if (roots[i].isDirectory()) {
fmqq53227117.deleteFiles(roots[i].toString(), "*", "*");
}
}
}
public static void main(String args[]) {
FileManager.listRoots();
FileManager fm = new FileManager();
// 此句表示删除G:\下的所有以"Fi"开头的,以"java"结尾的文件
// 删除指定文件,请慎用!!!本机环境下有G:\盘
fm.deleteFiles("G:\\", "1", "java");
//删除所有目录下文件, 请慎用此方法!!!!!!!!!!!!!!!!!
fm.deletAllFile();
}
}