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

在工作开发过程中,每次用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: 请看效果

时间: 2025-01-14 09:14:55

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

C#中拷贝指定文件夹下的所有文件夹目录到指定文件夹中的方法

原文地址:http://www.biye5u.com/article/Csharp/fileprog/2011/4198.html 本文给出了一个在C#中拷贝指定文件夹下的所有文件夹目录到指定文件夹中的方法. public static void CopyFolder(string strFromPath,string strToPath){       //如果源文件夹不存在,则创建       if (!Directory.Exists(strFromPath))       {      

《Linux学习并不难》文件目录管理(9):mv命令文件和目录改名、移动文件和目录路径

7.9  <Linux学习并不难>文件目录管理(9):mv命令文件和目录改名.移动文件和目录路径 使用mv命令可以对文件和目录更改名称以及移动文件和目录的路径. 命令语法: mv [选项] [源文件|目录] [目标文件|目录] 命令中各选项的含义如表所示. 选项 选项含义 -i 覆盖前询问 -f 覆盖前不询问 -n 不覆盖已存在的文件 例:将/root/pic目录下所有的后缀名为".png"的文件移动到/usr/local/share/pic目录下. [[email pro

vs2019 指定项目输出目录和指定中间目录

vs2019指定项目输出目录和指定中间目录 vs项目生成的文件默认在和项目同目录下,中间输出的文件在项目文件里面. 因为自己提交git库或者svn库,不方便,所以可以自己把输出文件和中间文件生成的目录指定在项目外. 操作步骤:鼠标右键项目->属性 ..... 弹出如下界面. 修改输出目录和中间目录,我们需要把上面的“配置”和“平台”调到所有配置 因为配置有debug和release,平台有win32和x64.选择所有配置,配置应用.他们都被配置了. 然后点击输出目录的右边不用选项,就会出现向下的

java 或者 js 获取项目访问路径(域名)

/** * 获得站点url * @return */ public String getWebUrl(){ String url = getRequest().getScheme() + "://" + getRequest().getServerName(); if(getRequest().getServerPort()!=80){ url+= ":" + getRequest().getServerPort(); } url+=getRequest().get

复制指定需求的文件或目录到指定目录

题目:Linux显示/etc下以非字母开头,后面跟了一个字母以及其他任意长度字符的文件或目录 答: ls -a /etc/ | grep -E ^[^[:alpha:]][[:alpha:]]* 题目:复制以p或者P开头,以非数字结尾的文件或目录到/tmp/mytest1 答: #创建文件夹 mkdir /tmp/mytest1 #拷贝文件 cp -r /etc/[pP]*[^[:digit:]] /tmp/mytest1 也可以写成如下格式 mkdir /tmp/mytest1; cp -r

gcc编译过程、C语言编译过程分析、环境变量设置、linux文件夹结构和用途介绍、常用文件和目录的操作命令、文件类型

参考链接:http://www.cnblogs.com/ggjucheng/archive/2011/12/14/2287738.html http://blog.csdn.net/novrose/article/details/7670477 http://blog.sina.com.cn/s/blog_7d5d42b40100ulqn.html 一.大小写后缀的区别 .s     汇编语言源程序;汇编.S     汇编语言源程序;预处理,汇编 小写的s文件,在后期阶段不在进行预处理操作,所以

CS1:Server 2003 文件路径过长导致最末文件夹权限无法继承上层文件夹权限

客户问题概括: 在Win 2003 服务器上客户访问本地一些目录的文件提示拒绝访问. 客户已发现尝试对相关文件owner更改为当前登录用户或者本地管理员用户组成员,然后添加本地管理员组为此文件无安全控制权限即可访问此文件. 客户要求需要用一种命令行方式对有问题的目录下所有文件或目录进行上述问题的更改,以达到可以正常访问文件目的. 解决方法:使用subinacl 命令行工具来进行相应操作即可. 1.下载subinacl工具.2.使用subinacl进行相应权限的更改. 举例:C:\errFolde

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

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class GetFileName { public static void main(String[] args)

【转】java 文件 读取目录下的所有文件(包括子目录)

转自:http://www.cnblogs.com/pricks/archive/2009/11/11/1601044.html import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class test { public static void main(String[] args)