java与Groovy的互调用 实现在当前目录及其子目录删除指定名称的目录
来源:互联网 发布:2017网络灰色赚钱项目 编辑:程序博客网 时间:2024/04/30 06:02
TestInterface.java
package com.huawei;import java.util.List;public interface TestInterface {public abstract List<String> getDirPaths(String name);}
RecursiveDelFile.groovy
package com.huawei;/** * groovy实现java定义的接口 * @author Administrator * */public class RecursiveDelFile implements TestInterface{/* * 找到当前目录及其子目录中名字等于name的目录的绝对路径列表 * @see com.huawei.TestInterface#deleteDirPaths(java.lang.String) * @return 绝对路径列表 */public List<String> getDirPaths(String name) {List<String> result = new ArrayList<String>()new File('.').eachFileRecurse {if(it.getName().equalsIgnoreCase(name)) {println "delete "+ it.getCanonicalPath()result.add(it.getCanonicalPath())}}return result}}
Target.java
package com.huawei;import groovy.lang.GroovyClassLoader;import java.io.File;import java.util.List;/** * java调用groovy定义的方法获取当前目录下指定名字的目录列表 * 并全部删除 * @author Administrator * */public class Target {public static void main(String[] args) {ClassLoader cl = new Target().getClass().getClassLoader();GroovyClassLoader groovyCl = new GroovyClassLoader(cl);try {Class groovyClass = groovyCl.parseClass(new File("src/com/huawei/RecursiveDelFile.groovy"));TestInterface bo = (TestInterface) groovyClass.newInstance();//删除当前目录及其子目录下名字为target(不区分大小写)的目录List<String> deletePaths = bo.getDirPaths("target");for(String path : deletePaths){ FileUtils.deleteDirectory(path);}} catch (Exception e) {e.printStackTrace();}}}
FileUtils.java
package com.huawei;import java.io.File;/** * 文件工具类 * 实现了删除目录和文件的方法 * @author Administrator * */public final class FileUtils {public static boolean deleteDirectory(String sPath) {boolean flag = false;// 如果sPath不以文件分隔符结尾,自动添加文件分隔符if (!sPath.endsWith(File.separator)) {sPath = sPath + File.separator;}File dirFile = new File(sPath);// 如果dir对应的文件不存在,或者不是一个目录,则退出if (!dirFile.exists() || !dirFile.isDirectory()) {return false;}flag = true;// 删除文件夹下的所有文件(包括子目录)File[] files = dirFile.listFiles();for (int i = 0; i < files.length; i++) {// 删除子文件if (files[i].isFile()) {flag = deleteFile(files[i].getAbsolutePath());if (!flag)break;} // 删除子目录else {flag = deleteDirectory(files[i].getAbsolutePath());if (!flag)break;}}if (!flag)return false;// 删除当前目录if (dirFile.delete()) {return true;} else {return false;}}public static boolean deleteFile(String path) {// 如果Path不以文件分隔符结尾,自动添加文件分隔符if (!path.endsWith(File.separator)) {path = path + File.separator;}File dirFile = new File(path);// 如果dir对应的文件不存在,或者不是一个文件,则退出if (!dirFile.exists() || !dirFile.isFile()) {return false;}return dirFile.delete();}}
0 0
- java与Groovy的互调用 实现在当前目录及其子目录删除指定名称的目录
- 输出当前目录及其所有子目录名称
- 获取指定目录及其子目录的所有文件(JAVA)
- 去掉当前目录及其所有子目录下的svn目录
- Java 删除当前目录及其目录下的所有文件
- Linux查找当前目录及其子目录下所有包含指定字符串的文件
- 删除当前目录下及其子目录下的所有空文件夹
- 查找并删除当前目录及其子目录下的所有重复文件
- 查找当前目录及其子目录下文件的行数
- 获取指定目录及其子目录下所有文件的绝对路径
- [Shell]在一个目录及其子目录内的指定类型的文件中搜索某个字符串
- 删除当前目录及子目录的空文件夹
- 源码--删除指定目录下(包含子目录)的文件
- 删除目录及子目录下指定的文件
- 删除目录及其子目录下的.svn文件夹
- bat删除当前目录及其所有子目录中的VC临时文件
- 使用递归实现,将指定的目录以及其子目录全部删除
- Linux 删除目录及其子目录指定类型文件
- hdu 5677(manacher + 二维背包)
- MarkWord - 可发布到CSDN的Markdown编辑器(支持图片同步)
- 安卓与H5之间的调用,本地模版动态刷新数据
- 用ISO C++实现自己的信号槽(Qt另类学习)
- TVP5150视频解码芯片 调试总结
- java与Groovy的互调用 实现在当前目录及其子目录删除指定名称的目录
- 操作系统知识要点总结
- c 获取当前时间并格式化输出
- thymeleaf 模板语言简介
- 01,Linux 常见指令集合
- 清除浮动的几种方法
- 算法导论 第15章 动态规划:矩阵链乘法
- 2016sdau课程练习专题四 1003
- 专题四 总结