疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java 循环文件夹删除指定名称的文件


 

  以前的项目都是用的CVS,最近公司说用SVN,所以在项目移植的时候不能直接放到SVN上面,检查发现每个文件夹下面都有CVS文件,项目文件挺多的,挨个删除不符合码农的这个名称啊,所以写了个小代码,跟大家分享一下。用java写的根据循环某个文件夹,删除指定名称的文件夹

  import java.io.File;

  public class Disconnect {

  /**循环删除指定文件夹下的指定名称的文件夹

  * 被删除文件夹内的所有文件和文件夹都会被删除

  */

  public static void main(String[] args) {

  String rootdir="D:/test/SoftwareAssets";//文件路径

  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+"]不存在! ";

  }

  boolean isdir = root.isDirectory();

  if(!isdir){

  return "";

  }

  //当前文件夹下的所有文件

  String[] allfiles = root.list();

  //判断目录是否为空

  if(null != allfiles && allfiles.length >= 0){

  for(int i=0;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

  File fcur = new File(filetodel.getAbsolutePath()+"\"+fl[i]);

  if(fcur.isDirectory()){

  Disconnect.delpaysical(fcur);

  fcur.delete();

  }else{

  fcur.delete();

  }

  }

  f = filetodel.delete();

  return f;

  }

  }