Java中删除目录及其下文件的实现方法:掌握高效且安全的操作技巧
Ofweek 2023-12-07

  /**

  * 删除文件,可以是单个文件或文件夹

  * @param fileName 待删除的文件名

  * @return 文件删除成功返回true,否则返回false

  */

  public static boolean delete(String fileName){

  File file = new File(fileName);

  if(!file.exists){

  System.out.println("删除文件失败:"+fileName+"文件不存在");

  return false;

  }else{

  if(file.isFile){

  return deleteFile(fileName);

  }else{

  return deleteDirectory(fileName);

  }

  }

  }

  /**

  * 删除单个文件

  * @param fileName 被删除文件的文件名

  * @return 单个文件删除成功返回true,否则返回false

  */

  public static boolean deleteFile(String fileName){

  File file = new File(fileName);

  if(file.isFile && file.exists){

  file.delete;

  System.out.println("删除单个文件"+fileName+"成功!");

  return true;

  }else{

  System.out.println("删除单个文件"+fileName+"失败!");

  return false;

  }

  }

  /**

  * 删除目录(文件夹)以及目录下的文件

  * @param dir 被删除目录的文件路径

  * @return 目录删除成功返回true,否则返回false

  */

  public static boolean deleteDirectory(String dir){

  //如果dir不以文件分隔符结尾,自动添加文件分隔符

  if(!dir.endsWith(File.separator)){

  dir = dir+File.separator;

  }

  File dirFile = new File(dir);

  //如果dir对应的文件不存在,或者不是一个目录,则退出

  if(!dirFile.exists || !dirFile.isDirectory){

  System.out.println("删除目录失败"+dir+"目录不存在!");

  return false;

  }

  boolean 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){

  System.out.println("删除目录失败");

  return false;

  }

  //删除当前目录

  if(dirFile.delete){

  System.out.println("删除目录"+dir+"成功!");

  return true;

  }else{

  System.out.println("删除目录"+dir+"失败!");

  return false;

  }

  }

  public static void main(String[] args) {

  //String fileName = "g:/temp/xwz.txt";

  //DeleteFileUtil.deleteFile(fileName);

  String fileDir = "G:/temp/temp0/temp1";

  //DeleteFileUtil.deleteDirectory(fileDir);

  DeleteFileUtil.delete(fileDir);

  }

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 硬件
  • 原理图
  • 信号完整性
  • EMI
下载排行榜
更多
评测报告
更多
广告