delete()
메서드를 사용하여 파일이나 빈 디렉터리/폴더를 삭제할 수 있습니다. 파일이 삭제되면 delete() 메서드는 true를 반환하고, 파일이 존재하지 않으면 반환합니다. 거짓. delete()
方法可用于删除文件或空目录/文件夹,如果文件被删除,delete()方法返回true,如果文件不存在则返回false。
如果删除目录,delete()
方法检查目录是否为空,如果目录为空,则删除目录,否则delete()方法不会执行任何操作并返回false,所以在这种情况下,必须递归删除所有文件,然后再删除目录。
删除非空目录的另一种方法是使用Files.walkFileTree()
方法,在这种方法中,可以逐个处理所有文件,并在单个文件对象上调用delete()
delete()
메소드는 디렉토리가 비어 있는지 확인합니다. 디렉토리가 비어 있으면 삭제() 메소드는 어떤 작업도 수행하지 않습니다. false를 반환하므로 이 경우 모든 파일을 재귀적으로 삭제한 다음 디렉터리를 삭제해야 합니다. 비어 있지 않은 디렉터리를 삭제하는 또 다른 방법은 Files.walkFileTree()
메서드를 사용하는 것입니다. 이 메서드에서는 모든 파일을 하나씩 처리할 수 있으며 단일 파일에 대해 delete가 호출됩니다. 객체()
메서드. 파일 삭제 예:
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()과 달리 삭제 메서드는 IOException을 발생시키지 않습니다.
다음은 비어 있지 않은 디렉터리를 삭제하는 방법을 보여주는 간단한 프로그램입니다. 디렉터리에 파일이 포함되어 있으면 디렉터리를 삭제하면 성공하지 못합니다.
디렉토리 삭제 예:
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()); }}
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<Path>() { @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에서 파일 및 디렉토리를 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!