来一个原创的:
我的电脑里面莫名其妙的出现了一个文件_desktop.ini,不是系统的desktop.ini,而是前面有一个下划线,而且在每一个文件夹下面都有,NND,如果手工删除岂不是要类死,所以就打算用java的file类来编写一个程序,搜索一下硬盘里面的所有_desktop.ini文件,并且删除,顺便删除,同时统计一下花费了多少时间。结果搜索到了7000多个文件,妈的,如果手动删除要到后年马月,如果有兴趣的朋友还可以增加一些大小比较,还可以增加一个GUI界面,也不错,呵呵
package fd;
import java.io.*;
import java.util.*;
public class FileDelete {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Long CurrTime = System.currentTimeMillis();
System.out.println("Current Time is: " + CurrTime);
Vector<String> v = new Vector<String>();
// 讲我的驱动器的名字加入到一个vector里面,我用的是傻办法,
// 我不知道用哪一个api可以讲系统中所有的驱动器名字罗列出来,如有知道,请告知
v.add("C://");
v.add("D://");
v.add("E://");
v.add("F://");
v.add("G://");
v.add("H://");
v.add("J://");
v.add("K://");
v.add("L://");
// 这个是要搜索的文件_desktop.ini
String ss = "_desktop.ini";
FileDel fd = new FileDel(ss, v);
fd.setT(CurrTime);
Enumeration E = v.elements();
while (E.hasMoreElements()) {
System.out.println(E.nextElement().toString());
}
fd.ListMem();
}
}
class FileDel {
private String FileName = null;
private Vector Tv;
private Long T = 0L ;
private String StrElement = null;
private int FileNumber = 0;
public FileDel(String ss, Vector vv) {
FileName = ss;
this.Tv = vv;
}
public void ListMem() {
// 列举对象Tv中的对象
Enumeration it = Tv.elements();
while (it.hasMoreElements()) {
StrElement = (String) it.nextElement();
File LM_File = new File(StrElement);
System.out.println("Searching In Disk: " + StrElement);
SearchFile(LM_File);
}
System.out.println("Total Number File Found: " + FileNumber);
Long TT = System.currentTimeMillis() - T;
System.out.println("Total Number Time Elapse " + TT);
}
public void SearchFile(File FileInput) {
// 将文件夹里面的文件列出来
File[] SF_File = FileInput.listFiles();
for (File SF_TFile : SF_File) {
if (SF_TFile.isFile()) {
if (SF_TFile.getName().equals(FileName)) {
System.out.println("Found File in= "
+ SF_TFile.getAbsolutePath());
try {
System.out.println(SF_TFile.getCanonicalPath());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SF_TFile.delete();
// SF_TFile.
FileNumber++;
}
} else if (SF_TFile.isDirectory()) {
this.SearchFile(SF_TFile);
// 其实主要是这条语句了,利用递规,将文件夹再次搜索一遍
}
}
}
public void setT(Long t) {
T = t;
}
}