Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Windows服务器 > » 正文

删除svn文件夹的程序

来源: a5728238 分享至:

   我离开上家公司的时候,带走了以前在公司开发用到的文档和工程代码,发现整个一套下来有接近20个G的容量,发现其中很大一部分是svn的版本记录,就是.svn文件夹。因为已经离开了上家公司,所以这些svn版本管理信息就没必要放在那占用空间,上网查询下是否有现成的工具去删除svn文件夹,发现如果是linux的话还好办直接通过控制台shell命令就可以删除,但是windows的话需要改注册表增加一个鼠标右击菜单选项来执行删除操作,因为我们删除svn这种事情很少执行,没必要为了一次删除增加右击菜单选项,而且执行完了还需要删除这个选项,操作比较麻烦,所以自己通过java写了一个删除指定目录下指定文件名的类,发现删除后20g空间变成10g左右,而且执行速度比较快,比我们直接删除还清理垃圾站效率高,所以拿出了给大家分享一下。
 

package jdj.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class DeleteSVN {
    private static Integer i = 0;
private static String fileName;
private static String deleteFileName;
static{
  Properties properties = new Properties();
  try {
   //从配置文件读取删除路径和删除文件名
   String proFileName = DeleteSVN.class.getClassLoader().getResource("delete.properties").getPath();
   FileInputStream fis = new FileInputStream(proFileName);
   properties.load(fis);
   fileName = properties.getProperty("fileName");
   deleteFileName = properties.getProperty("deleteFileName");
  
  } catch (IOException e) {
   e.printStackTrace();
  }
}
/**
  * 用于执行删除文件,递归调用
  * @author jiang
  * 日期: 2011-12-06
  * @param fileName 删除文件的路径
  */
public static void  deleteSvn(String fileName){
  File svnFile = new File(fileName);
  if(svnFile.isDirectory()){
   File[] svnFiles = {};
   try {
    svnFiles =svnFile.listFiles();
   } catch (Exception e) {
    System.out.println(svnFile.getPath());
   }
   if(svnFiles!=null&&svnFiles.length>0){
  for(File file:svnFiles){
   if(deleteFileName.equals(file.getName())){
    deleteSubFiles(file);
    boolean flag = file.delete();
    if(flag){
    synchronized (i) {
     i++;
     System.out.println("删除文件个数为:"+i+",文件名为:"+file.getPath());
    }
    }
   }
   if(file.isDirectory()){
    deleteSvn(file.getPath());
   }
  }
   }
  }
  
}

public static void  deleteSvn(){
  deleteSvn(fileName);
}

/**
  * 用于执行删除文件夹下面的东西,递归调用
  * @author jiang
  * 日期: 2011-12-06
  * @param file 要删除文件
  */
public static void  deleteSubFiles(File file){
  for(File subFile:file.listFiles()){
   if(!subFile.isDirectory()){
    subFile.delete();
   }else{
    deleteSubFiles(subFile);
    subFile.delete();
   }
  }
}

public static void main(String[] args) {
  DeleteSVN.deleteSvn();
  System.out.println("删除文件个数为:"+DeleteSVN.i);
}
}

 

delete.properties文件有如下内容 

fileName=H:
deleteFileName=.svn


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史