Home  >  Article  >  Java  >  How to delete files and directories in java

How to delete files and directories in java

王林
王林Original
2019-11-22 17:01:2712998browse

How to delete files and directories in java

delete() method can be used to delete files or empty directories/folders. If the file is deleted, the delete() method returns true if the file does not exist. Return false.

If the directory is deleted, the delete() method checks whether the directory is empty. If the directory is empty, delete the directory, otherwise the delete() method will not perform any operation and return false, so In this case, all files must be deleted recursively and then the directory.

Another way to delete a non-empty directory is to use the Files.walkFileTree() method, in which all files can be processed one by one and called # on a single file object ##delete()Method.

Delete file example:

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");
    }}

Note: Unlike createNewFile(), the delete method does not throw an IOException.

The following is a simple program that demonstrates how to delete a non-empty directory. If the directory contains files, deleting the directory will not succeed.

Example of deleting a directory:

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());
    }}

Example of deleting a directory recursively:


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;
           }
        });
    }}

Recommended tutorial:

java introductory tutorial

The above is the detailed content of How to delete files and directories in java. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn