如何用JAVA删除一个非空的目录

import java.io.File; public class FileDemo { /** * 通过调用系统命令删除一个文件夹及下面的所有文件 * @param file */ public static void deleteFileByWinCom(File file){ Runtime rt = Runtime.getRuntime(); String cmd = null; try{ if(file.isFile...
如何用JAVA删除一个非空的目录
public static void main(String[] args) {
File file = new File("写要删除文件夹的绝对路径");
listFile(file);
}

private static void listFile(File file) {
if (file.isDirectory()) { //如果是文件夹
File[] files = file.listFiles();
for (File file2 : files) {
listFile(file2);
}
}
file.delete(); //不管是不是文件夹都删除,当递归完,文件夹都会为空,都会被删除
}2017-07-30
有两种方式,一种使用递归算法,另外一种直接调用windows的命令:
import java.io.File; public class FileDemo { /** * 通过调用系统命令删除一个文件夹及下面的所有文件 * @param file */ public static void deleteFileByWinCom(File file){ Runtime rt = Runtime.getRuntime(); String cmd = null; try{ if(file.isFile()){ cmd = "cmd.exe /c del /q/a/f/s "+file.getAbsolutePath(); }else{ cmd = "cmd.exe /c rd /s/q "+file.getAbsolutePath(); } rt.exec(cmd); System.out.println("成功执行了命令..."); }catch(Exception e){ System.out.println("调用系统命令失败了..."); } } /** * 通过递归调用删除一个文件夹及下面的所有文件 * @param file */ public static void deleteFile(File file){ if(file.isFile()){//表示该文件不是文件夹 file.delete(); }else{ //首先得到当前的路径 String[] childFilePaths = file.list(); for(String childFilePath : childFilePaths){ File childFile=new File(file.getAbsolutePath()+"\\"+childFilePath); deleteFile(childFile); } file.delete(); } } public static void main(String[] args){ File file=new File("D:\\demo"); //deleteFileByWinCom(file); deleteFile(file); } } 具体参考资料:http://blog.csdn.net/smach1991710/article/details/9175757
2016-12-14
只能递归删除了。2016-12-14
mengvlog 阅读 96 次 更新于 2025-10-31 15:18:14 我来答关注问题0
檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部