删除Eclipse升级后的旧版本插件
注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");}}