在工作开发过程中,每次用SVN提交代码全选择的时候,发现会产生很多不需要的文件后缀垃圾文件,感觉挺烦人的,一个一个删太麻烦了,如果产生多种后缀文件时,那删起来多费劲,是吧?想想,就写了一段程序通过递归进行处理,虽然网上有很多这样的代码,但是我感觉都有问题,网上的代码很多都需要拿过来执行一下才知道有没有问题,如果是多层目录结构的时候,会把你的相同文件名称也干掉,而我写的这个即使是需要删除的文件后缀名称跟文件名一样都不会删掉。每次提交之前我都执行一下再提交,这样就不会有哪些不需要的后缀文件了。这个还是比较实用,分享给大家,希望能让更多的人,提高开发效率。

package test;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class SweepUnusedFiles
{
public static void main(String[] args)
{
String filedir = "F:\\某个目录下";
List<String> suffixList = new ArrayList<String>();
suffixList.add(".db");
// suffixList.add(".tmp");
// suffixList.add(".html_zh");
// suffixList.add("_zh.js");
SweepUnusedFiles sweepUnusedFiles = new SweepUnusedFiles();
sweepUnusedFiles.startDeleteFixedFiles(filedir, suffixList);
System.out.println("执行完成!");
}
public void startDeleteFixedFiles(String filedir, List<String> suffixList)
{
if (null == filedir || "".equals(filedir.trim()))
{
System.out.println("filedir 目录不对!");
return;
}
filedir = filedir.trim();
if (null == suffixList || suffixList.size() <= 0)
{
System.out.println("suffixList 没有要匹配的后缀!");
return;
}
File f = new File(filedir);
if (f.isDirectory())
{
handleFile(f, suffixList);
}
else
{
System.out.println("filedir 必须为目录");
/* for (String suffix : suffixList) { if (f.getName().endsWith(suffix)) { // 匹配到的要删除 try { f.delete(); }
* catch (Exception e) { System.out.println("文件删除失败:" + f.getAbsolutePath() + "\\" + f.getName()); } } } */
}
}
private void handleFile(File filedir, List<String> suffixList)
{
// 目录
File[] files = filedir.listFiles();
for (File subFile : files)
{
if (subFile.isDirectory())
{
handleFile(subFile, suffixList);
}
else
{
// 文件
for (String suffix : suffixList)
{
if (subFile.getName().endsWith(suffix))
{
// 匹配到的要删除
try
{
subFile.delete();
System.out.println("已删除文件:" + subFile.getAbsolutePath() + "\\" + subFile.getName());
}
catch (Exception e)
{
System.out.println("文件删除失败:" + subFile.getAbsolutePath() + "\\" + subFile.getName());
}
}
}
}
}
}
}

ps: 请看效果

java 使用递归获取指定文件路径目录,删除指定的文件后缀(可扩展,根据具体需要的删除的后缀进行配置)~~的更多相关文章

  1. java实现将指定文件夹里所有文件路径输出到指定文件作为参数化文件给lr脚本使用

    java实现将指定文件夹里所有文件路径输出到指定文件作为参数化文件给lr脚本使用 import java.io.BufferedReader; import java.io.BufferedWrite ...

  2. 【转】Java Web 项目获取运行时路径 classpath

    Java Web 项目获取运行时路径 classpath 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么ja ...

  3. Python 获取当前脚本文件路径目录

    # -*- coding: cp936 -*- import sys,os # 获取脚本文件的当前路径 def cur_file_dir(): # 获取脚本路径 path = sys.path[0] ...

  4. Java中获取本地某一个目录下的所有文件和文件夹

    在从事web开发工作中,经常需要对本地某一个目录下的文件进行处理,而在这之前,我们需要做的就是获取到这个目录下的文件. String filepath = "D:\file";// ...

  5. Spring Boot 上传文件 获取项目根路径 物理地址 resttemplate上传文件

    springboot部署之后无法获取项目目录的问题: 之前看到网上有提问在开发一个springboot的项目时,在项目部署的时候遇到一个问题:就是我将项目导出为jar包,然后用java -jar 运行 ...

  6. Java Web 项目获取运行时路径 classpath

    假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么java文件夹和resources文件夹在运行时就是class ...

  7. 获取DLL的文件路径以及调用DLL的文件路径

    如何在DLL中,获取DLL本身的路径以及调用DLL的文件的路径呢?主要通过GetModuleFileName(HMODULEhModule,LPTSTR lpFilename,DWORD nSize) ...

  8. find tar排除指定文件或目录操作及查找文件内容关键字

    1.find查找排除单个目录 查找当前目录或者子目录下所有.txt文件,但是跳过子目录sk find . -path "./sk" -prune -o -name "*. ...

  9. Maven获取resources的文件路径、读取resources的文件

    路径问题一切要看编译后的文件路径 比如,源文件路径是: 而编译后的文件路径为: 也就是说,resources文件夹下的文件在编译后,都是为根目录,这种情况下,比如我要读取resources 文件夹下的 ...

随机推荐

  1. 【java规则引擎】之Drools之Rete算法

    一:规则引擎--->规则引擎的核心是Pattern Matcher(模式匹配器).不管是正向推理还是反向推理,首先要解决一个模式匹配的问题.--->对于规则的模式匹配,可以定义为: 一个规 ...

  2. Qt中数据模块学习

    QtSql模块 驱动类型和数据库:不同的数据库用不同的驱动连接(接口不同) QDB2->DB2 QOCI->orcle QODBC->SQLServer等 QSqlDataBase类 ...

  3. logrotate机制与原理[转载]

    http://blog.lightxue.com/how-logrotate-works/ 日志实在是太有用了,它记录了程序运行时各种信息.通过日志可以分析用户行为,记录运行轨迹,查找程序问题.可惜磁 ...

  4. HTML5桌面通知:notification

    最近由于公司业务需要,领导要求IM消息有像网页微信那样有新消息桌面右下角弹出一个提示框的效果!由于自己才疏学浅,一时还没明白微信是怎么实现的!所以只能问百度(因为懒得FQ)咯! 在网上搜索了N久,心都 ...

  5. UML基础与Rose建模实训教程

    目  录 第1章  初识UML. 1 1.1 初识UML用例图... 1 1.2 初识UML类图... 3 第2章  Rational Rose工具... 6 2.1 安装与配置Rational Ro ...

  6. == 与 equals 的区别

    今天跟开发修复一个bug,现在列出来这个绕口的比较 场景一: Long a = 1: Long b = 1: boolean result = (a == b); //此时result的值为false ...

  7. java关键字:synchronized

    JAVA 如何共享资源 关于synchronized函数: java具有内置机制,可防止某种资源(此处指的是对象的内存内容)冲突.由于你通常会将某class的数据元素声明为private,并且只经由其 ...

  8. [转]''\\=DevExpress 中 汉化包 汉化方法

    [DevExpress]DevExpress 中 汉化包 汉化方法 2016-02-17 21:13 1781人阅读 评论(0) 收藏 举报  分类: DevExpress(24)  版权声明:本文为 ...

  9. Head First 设计模式之适配器模式与外观模式

    Head First设计模式之适配器模式与外观模式 前言: 之前讲过装饰者模式,将对象包装起来并赋予新的职责,这一章我们也会将对象进行包装,只不过是让它们看起来不像自己而像是别的东西.这样就可以在设计 ...

  10. 在CentOS上安装并运行SparkR

    环境配置—— 操作系统:CentOS 6.5 JDK版本:1.7.0_67 Hadoop集群版本:CDH 5.3.0 安装过程—— 1.安装R yum install -y R 2.安装curl-de ...