Java删除文件和目录

您所在的位置:网站首页 java删除文件操作 Java删除文件和目录

Java删除文件和目录

2023-11-20 18:56| 来源: 网络整理| 查看: 265

在这一小节中将学习如何在Java中删除文件和目录,在上面我们学习了如何在java中创建文件。

1. Java删除文件 Java File delete()方法可用于删除文件或空目录/文件夹。如果文件被删除,delete()方法返回true,如果文件不存在则返回false。如果删除目录,delete()方法检查目录是否为空。如果目录为空,则删除目录,否则delete()方法不会执行任何操作并返回false。所以在这种情况下,必须递归删除所有文件,然后再删除空目录。删除非空目录的另一种方法是使用Files.walkFileTree()方法。在这种方法中,可以逐个处理所有文件,并在单个文件对象上调用delete方法。

Java删除文件示例

// package com.journaldev.files; import java.io.File; public class DeleteFileJava { /** * 此类显示如何在Java中删除文件 * @param args */ public static void main(String[] args) { // 带路径的文件名 File file = new File("tmp/tmp2/file.txt"); if(file.delete()){ System.out.println("tmp/tmp2/file.txt File deleted"); }else System.out.println("File tmp/tmp2/file.txt doesn't exist"); // 只提供文件名称 file = new File("file.txt"); if(file.delete()){ System.out.println("file.txt File deleted from Project root directory"); }else System.out.println("File file.txt doesn't exist in the project root directory"); //relative path file = new File("temp/file.txt"); if(file.delete()){ System.out.println("temp/file.txt File deleted from Project root directory"); }else System.out.println("File temp/file.txt doesn't exist in the project root directory"); // 删除空的目录 file = new File("temp"); if(file.delete()){ System.out.println("temp directory deleted from Project root directory"); }else System.out.println("temp directory doesn't exist or not empty in the project root directory"); // 试图删除非空目录 file = new File("D:/user/maxsu/project"); if(file.delete()){ System.out.println("D:/user/maxsu/project directory deleted from Project root directory"); }else System.out.println("D:/user/maxsu/project directory doesn't exist or not empty"); } }

注意,与createNewFile()不同,delete方法不会抛出IOException异常。

2. Java删除目录

下面是一个简单的程序,演示如何删除非空目录。如果目录包含有文件,删除目录不会成功。

import java.io.File; public class JavaDeleteDirectory { public static void main(String[] args) { File dir = new File("D:/worksp/java/log"); if(dir.isDirectory() == false) { System.out.println("Not a directory. Do nothing"); return; } File[] listFiles = dir.listFiles(); for(File file : listFiles){ System.out.println("Deleting "+file.getName()); file.delete(); } //现在目录为空,所以可以删除它 System.out.println("Deleting Directory. Success = "+dir.delete()); } } 3. Java递归删除目录

前面编写了基于递归的代码来删除带有嵌套目录的目录。但是使用Java 7,可以使用Files类来完成。下面是用来删除目录的代码,它也负责删除嵌套目录。

import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; public class JavaDeleteDirectoryRecursively { public static void main(String[] args) throws IOException { Path directory = Paths.get("D:/worksp/maxsu/log"); Files.walkFileTree(directory, new SimpleFileVisitor() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attributes) throws IOException { Files.delete(file); // 有效,因为它始终是一个文件 return FileVisitResult.CONTINUE; } @Override public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { Files.delete(dir); //这将起作用,因为目录中的文件已被删除 return FileVisitResult.CONTINUE; } }); } }

上面就是java删除文件和java删除目录示例的全部内容。

上一篇: java中方法重载和方法重写的区别 下一篇:哥,这回真没有了


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3