以前的项目都是用的CVS,最近公司说用SVN,所以在项目移植的时候不能直接放到SVN上面,检查发现每个文件夹下面都有CVS文件,项目文件挺多的,挨个删除不符合码农的这个名称啊,所以写了个小代码,跟大家分享一下。用java写的根据循环某个文件夹,删除指定名称的文件夹
import java.io.File;
public class Disconnect {
/**循环删除指定文件夹下的指定名称的文件夹
* 被删除文件夹内的所有文件和文件夹都会被删除
*/
public static void main(String[] args) {
String rootdir="D:/test/××××";//文件路径(最外层的目录就行)
String dirtodel="CVS";//要删除的文件名称
Disconnect.rmDirs(rootdir, dirtodel);
}
/**
* 执行删除文件夹操作的方法
* @param rootdir 文件夹所在路径
* @param dirtodel 需要删除的文件夹
*/
public static String rmDirs(String rootdir,String dirtodel){
try{
File root = new File(rootdir);
if(!root.exists()){
return "路径:["+rootdir+"]不存在!\n";
}
boolean isdir = root.isDirectory();
if(!isdir){
return "";
}
//当前文件夹下的所有文件
String[] allfiles = root.list();
//判断目录是否为空
if(null != allfiles && allfiles.length >= 0){
for(int i=0;i<allfiles.length;i++){
if(allfiles[i].equalsIgnoreCase(dirtodel)){ //如果遍历得到的文件夹的名称跟dirtodel相同择删除,否则遍历下一个
File curfile = new File(rootdir+"\\"+allfiles[i]);
if(curfile.isDirectory()){
//调用删除方法进行删除
if(Disconnect.delpaysical(curfile)){
System.out.println("删除["+rootdir+"\\"+allfiles[i]+"]成功!");
}else{
System.out.println("删除["+rootdir+"\\"+allfiles[i]+"]时出错,删除失败!!");
}
}
}else{
System.out.println(Disconnect.rmDirs(rootdir+"\\"+allfiles[i], dirtodel));
}
}
}else{
System.out.println("目录为空");
}
root = null;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
/**
* 删除文件夹
*/
private static boolean delpaysical(File filetodel) throws Exception{
boolean f = false;
String[] fl = filetodel.list();
for(int i=0;i<fl.length;i++){
File fcur = new File(filetodel.getAbsolutePath()+"\\"+fl[i]);
if(fcur.isDirectory()){
Disconnect.delpaysical(fcur);
fcur.delete();
}else{
fcur.delete();
}
}
f = filetodel.delete();
return f;
}
}