批量删除maven下载失败文件lastUpdated的目录
2017-03-27 14:02
555 查看
因网络或其他的原因,maven下载jar等文件失败后,会在目录中存在 *.jar.lastUpdated ,如:xmlpull-1.1.3.1.jar.lastUpdated,
此时,代码编译时会一直出错,编译无法通过。
必须将此下载失败文件的目录全部删除,然后让maven重新下载jar等文件。
如果下载失败的文件太多,查找和删除时会很耗时间的。
下面提供一个查找和删除文件目录的类,减轻了工作量。
此时,代码编译时会一直出错,编译无法通过。
必须将此下载失败文件的目录全部删除,然后让maven重新下载jar等文件。
如果下载失败的文件太多,查找和删除时会很耗时间的。
下面提供一个查找和删除文件目录的类,减轻了工作量。
import java.io.File; import java.io.FileFilter; import java.util.ArrayList; import java.util.List; /** * 删除maven下载失败的目录 * <pre> * 先搜索 存在 lastUpdated的文件(即jar文件等), * 然后再删除此文件的目录 * </pre> */ public class DeleteMavenDownloadfailedFile { /**声明统计文件个数的变量*/ static int countFiles = 0; /**声明统计文件夹的变量*/ static int countFolders = 0; /** *递归查找包含关键字的文件 */ public static File[] searchFile(File folder, final String keyWord) { File[] subFolders = folder.listFiles(new FileFilter() {// 运用内部匿名类获得文件 public boolean accept(File pathname) {// 实现FileFilter类的accept方法 if (pathname.isFile()) {// 如果是文件 countFiles++; } else { // 如果是目录 countFolders++; } if (pathname.isDirectory() || (pathname.isFile() && pathname.getName().toLowerCase().contains(keyWord.toLowerCase()))) {// 目录或文件包含关键字 return true; } return false; } }); List<File> result = new ArrayList<File>();// 声明一个集合 for (int i = 0; i < subFolders.length; i++) {// 循环显示文件夹或文件 if (subFolders[i].isFile()) {// 如果是文件则将文件添加到结果列表中 result.add(subFolders[i]); } else {// 如果是文件夹,则递归调用本方法,然后把所有的文件加到结果列表中 File[] foldResult = searchFile(subFolders[i], keyWord); for (int j = 0; j < foldResult.length; j++) {// 循环显示文件 result.add(foldResult[j]);// 文件保存到集合中 } } } File files[] = new File[result.size()];// 声明文件数组,长度为集合的长度 result.toArray(files);// 集合数组化 return files; } public static File[] find(String root, String keyword) { File folder = new File(root);// 默认目录 if (!folder.exists()) {// 如果文件夹不存在 System.out.println("目录不存在:" + folder.getAbsolutePath()); return null; } File[] result = searchFile(folder, keyword);// 调用方法获得文件数组 return result; } /** * 删除文件和目录 * * 注意:根据业务场景,此方法没有采用递归删除 * * @param file */ public static void delete(File file) { if (file.exists()) { if (file.isFile()) { boolean bb = file.delete(); System.out.println(file.getAbsolutePath() + " 删除状态:" + bb); } else if (file.isDirectory()) { File files[] = file.listFiles(); for (int i = 0; i < files.length; i++) { File _file = files[i]; boolean bb = _file.delete(); System.out.println(" " + _file.getAbsolutePath() + " 删除状态:" + bb); } } boolean bb = file.delete(); System.out.println(file.getAbsolutePath() + " 删除状态:" + bb); } else { System.out.println("所删除的文件不存在!" + file.getAbsolutePath()); } } public static void main(String[] args) { String root = "C:\\Users\\Administrator\\.m2\\repository"; String keyword = "lastUpdated"; File[] result = find(root, keyword); if (result == null ) { return; } if (result.length == 0) { System.out.println("查找文件为 0"); return; } System.out.println("在 " + root + " 以及所有子文件时查找对象" + keyword); System.out.println("查找了" + countFiles + " 个文件," + countFolders + " 个文件夹,共找到 " + result.length + " 个符合条件的文件:"); for (int i = 0; i < result.length; i++) {// 循环显示文件 File file = result[i]; delete(new File(file.getParentFile().getAbsolutePath())); // System.out.println(file.getAbsolutePath() + // " == "+file.getParentFile().getAbsolutePath());// 显示文件绝对路径 } } }
相关文章推荐
- 小工具 - 批量删除Maven下载失败的文件夹
- 小工具 - 批量删除Maven下载失败的文件夹
- Eclipse 下载maven第三方源码包及删除maven仓库的.lastUpdated后缀文件
- 批量删除Maven中失败的下载项
- Maven学习总结(38)——Maven下载失败文件夹批量删除问题的两种解决方法
- 批量删除Maven 仓库未下载成功.lastupdate 的文件
- 小工具 - 批量删除Maven下载失败的文件夹
- 小工具 - 批量删除Maven下载失败的文件夹
- 小工具 - 批量删除Maven下载失败的文件夹(一直想自己写,最后还是输给了自己)
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- 批量删除一个目录下的文件
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- [转]Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- [导入].net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- [导入]Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(二)
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等