JAVA运用dos命令强制删除文件夹
来源:互联网 发布:爱国者诚信联盟知乎 编辑:程序博客网 时间:2024/06/13 13:21
在对文件夹进行操作时,如果用file.deleate()方法,有时候恐怕不凑效.用了第三方的FileUtils的forceDeleteFile()还是不凑效,所以,自己就用java写一个基于dos命令的方法来实现强制删除文件夹.
这并没有什么难的,只要知道dos命令,在java文件中调用runtime就好办了.
在这里为写了三个方法:删除某个文件目录;删除某个文件(不是文件夹)和清空某个文件夹下的所有文件及文件夹.自己根据自己的需求用吧.
/**使用dos命令强力删除目录 * 强力删除文件夹,里面就算有子文件夹,隐藏的,只读的,都能够全部删除掉. * directory 需要删除的目录 * return 如果目录不存在,则返回"目录不存在";删除成功,返回ok;删除失败 ,返回失败原因 * */ public static String forceDeleteDirectory(String directory){ File tagFile=new File(directory); if(tagFile.exists()){ try { String cmd = "cmd /c rd "+directory+" /s/q"; Runtime rt = Runtime.getRuntime(); // 获取运行时系统 Process proc = rt.exec(cmd); // 执行命令 InputStream stderr = proc.getInputStream(); // 获取输入流 InputStreamReader isr = new InputStreamReader(stderr,"gbk"); BufferedReader br = new BufferedReader(isr); String line = null; /*while ((line = br.readLine()) != null) { // 打印出命令执行的结果 System.out.println(line); }*/ } catch (Throwable t) { t.printStackTrace(); return t.getMessage(); } return "ok"; }else { return "目录不存在"; } } /**使用dos命令强力删除文件 * 强力删除文件 * file 需要删除的文件 * return 如果目录不存在,则返回"目录不存在"; * 删除成功,返回ok; * 删除失败 ,返回失败原因 * */ public static String forceDeleteFile(String file){ File tagFile=new File(file); if(tagFile.exists()){ try { String cmd = "cmd /c del "+file; Runtime rt = Runtime.getRuntime(); // 获取运行时系统 Process proc = rt.exec(cmd); // 执行命令 InputStream stderr = proc.getInputStream(); // 获取输入流 InputStreamReader isr = new InputStreamReader(stderr,"gbk"); BufferedReader br = new BufferedReader(isr); String line = null; /*while ((line = br.readLine()) != null) { // 打印出命令执行的结果 System.out.println(line); }*/ } catch (Throwable t) { t.printStackTrace(); return t.getMessage(); } return "ok"; }else { return "目录不存在"; } } /**使用dos命令强力删除指定文件夹下的文件或者文件夹 * * file 需要删除的文件 * return 如果目录不存在,则返回"目录不存在"; * 删除成功,返回ok; * 删除失败 ,返回失败原因 * */ public static String forceCleanFileBelowDirectory(String directory){ File tagFile=new File(directory); if(tagFile.exists()){ if(tagFile.isDirectory()){ //是目录,遍历一层,遇鬼杀鬼,遇魔降魔 File[] files=tagFile.listFiles(); for(File file : files){ if(file.isDirectory()){ forceDeleteDirectory(file.getAbsolutePath()); }else { forceDeleteFile(file.getAbsolutePath()); } } }else{ //不是目录,直接删除 forceDeleteFile(directory); } return "ok"; }else { return "目录不存在"; } }
阅读全文
0 0
- JAVA运用dos命令强制删除文件夹
- 怎么强制删除文件夹,强制删除文件夹命令,强制删除工具
- Windows 强制删除文件及文件夹命令
- Windows 强制删除文件及文件夹命令
- DOS环境下强制删除文件或非空文件夹
- 如何用DOS命令删除顽固文件夹
- dos下删除文件和文件夹命令
- 批量删除.svn文件夹dos命令
- 如何用DOS命令删除文件夹
- 强制删除文件夹
- 强制删除文件夹
- 强制删除文件夹
- DOS命令基本运用
- dos 下删除文件夹
- 删除windows下的超大文件夹,Dos命令解决方案
- 批处理/DOS命令删除文件夹下某类型的文件
- DOS命令 递归删除子目录下的各同名文件夹
- dos命令删除文件夹下的文件 和隐藏文件
- Unity3d获取、校准陀螺仪
- codefores 834B The Festive Evening
- angular的post请求,springmvc后台接收不到参数的解决方案
- TCP Keepalive
- 1972-斐波那契数列
- JAVA运用dos命令强制删除文件夹
- 杭电acm 4142Triangle(小学生题,判断三角形)
- Red Hat Enterprise Linu 7 3.1.13关机命令
- GCD and LCM
- Weblogic部署maven web项目
- shiro+redis实现session共享<2>
- Windows下的Dump文件
- Android系统级服务:DevicePolicyManager
- 总结问题解决