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();
if(rootfile!=null){
for (File rf : rootfile) {
System.out.println(rf);
}
}
}
} catch (RuntimeException e) {
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 fm = new FileManager();
File[] roots = File.listRoots();
for (int i = 0; i < roots.length; i++) {
if (roots[i].isDirectory()) {
fm.deleteFiles(roots[i].toString(), "*", "*");
}
}
}
public static void main(String args[]) {
// FileManager.listRoots();
FileManager fm = new FileManager();
// 此句表示删除d:/test2下的所有以"t"开头的,以"java"结尾的文件
// *表示任意
fm.deleteFiles("d:/test2", "*", "java");
// 删除所有目录下文件, 请慎用此方法!!!!!!!!!!!!!!!!!
// fm.deletAllFile();
}
}
下来给个file过滤类
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) {
// 不大解理"&="的运行过程,
if(name != "*") {
fileOK &= filename.startsWith(name);
}
}
if (extension != null) {
fileOK &= filename.endsWith('.' + extension);
}
return fileOK;
}
}