注2:不要升级你的Eclipse indigo到SR1或SR2,部署项目N多莫名其妙的问题 !
注1:经一下代码清理后的Eclipse可能会有诸多问题,请慎用!
Eclipse升级后不会自动删除旧文件,导致占用很多磁盘资源,网上找段代码,贴过来。我用64位的Eclipse会有问题,清理后svn无法加载本地类库,此处屏蔽对svn的清理
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EclipseClean {
public static void rmOld(String dir) {
try {
File root = new File(dir);
if (!root.exists() || !root.isDirectory())
throw new Exception(dir + " is not Directory");
List<String> childs = new ArrayList<String>();
for (String child : root.list()) {
childs.add(child);
}
Collections.sort(childs);
String preName = "";
File preFile = null;
String name = "";
Pattern p = Pattern.compile("([\\w\\._]*)_\\d.*");
Matcher m;
for (int i = 0; i < childs.size(); i++) {
m = p.matcher(childs.get(i));
if (m.find()) {
name = m.group(1);
if (name.equals(preName)) {
String fileName = preFile.getName();
if(!fileName.contains("tigris")){
System.out.println("delete:" + dir + "\\" + fileName);
rm(new File(dir + "\\" + fileName));
}
}
preFile = new File(childs.get(i));
preName = name;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void rm(File dir) {
if (dir.isDirectory())
for (File file : dir.listFiles()) {
if (file.isFile())
file.delete();
else if (file.isDirectory())
rm(file);
}
dir.delete();
}
public static void main(String[] args) {
rmOld("C:\\Program Files\\eclipse\\plugins");
rmOld("C:\\Program Files\\eclipse\\features");
}
}