Java判断文件或者文件夹是否存在,不存在创建,存在删除

Java判断文件或者文件夹是否存在,不存在创建,存在删除

在Java中,要判断文件或文件夹是否存在,并根据判断结果来执行创建或删除操作,你可以使用java.io.File类或者java.nio.file包中的类。以下是分别使用这两个类实现这个功能的示例代码。

使用java.io.File类

import java.io.File;
import java.io.IOException;

public class FileOrDirectoryOperations {
    public static void main(String[] args) {
        String path = "path/to/your/file_or_directory";
        File fileOrDirectory = new File(path);

        if (fileOrDirectory.exists()) {
            // 如果存在,则删除(无论是文件还是文件夹)
            if (fileOrDirectory.delete()) {
                System.out.println("文件或文件夹已删除。");
            } else {
                System.out.println("文件或文件夹删除失败。");
            }
        } else {
            // 如果不存在,则创建文件夹(注意:这里不会创建文件,只会创建文件夹)
            // 如果你想创建文件,请使用fileOrDirectory.createNewFile()代替mkdir()
            if (fileOrDirectory.mkdir()) { // 或者使用mkdirs()创建多级目录
                System.out.println("文件夹已创建。");
            } else {
                System.out.println("文件夹创建失败。");
            }
        }
    }
}

‌注意‌:上面的代码有一个问题,即它假设你想要创建的是一个文件夹而不是一个文件。如果你想要创建一个文件,你应该使用createNewFile()方法。但是,由于题目要求判断“文件或者文件夹”,这里我们使用了mkdir()来创建文件夹作为示例。如果你需要创建文件,请相应地修改代码。

使用java.nio.file包

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;

public class FileOrDirectoryOperationsNIO {
    public static void main(String[] args) {
        String pathString = "path/to/your/file_or_directory";
        Path path = Paths.get(pathString);

        if (Files.exists(path)) {
            // 如果存在,则删除(无论是文件还是文件夹)
            try {
                // 注意:Files.delete() 如果路径是目录且不为空,则会抛出 DirectoryNotEmptyException
                // 如果你想要删除非空目录,你需要使用 Files.walk() 来遍历并删除目录中的所有内容
                Files.delete(path);
                System.out.println("文件或文件夹已删除。");
            } catch (IOException e) {
                // 捕获并处理异常,例如 DirectoryNotEmptyException
                System.out.println("文件或文件夹删除失败:" + e.getMessage());
                if (e instanceof java.nio.file.DirectoryNotEmptyException) {
                    System.out.println("目录不为空,无法删除。");
                    // 可以选择递归删除目录内容
                }
            }
        } else {
            // 如果不存在,则尝试创建(这里假设你想要创建的是文件夹)
            // 如果你想要创建文件,请使用 Files.createFile(path)
            try {
                // 创建单级目录,如果父目录不存在则会抛出 NoSuchFileException
                // 如果你想要创建多级目录,请使用 Files.createDirectories(path)
                Files.createDirectory(path);
                System.out.println("文件夹已创建。");
            } catch (IOException e) {
                System.out.println("文件夹创建失败:" + e.getMessage());
            }
        }
    }
}

注意‌:

Files.delete() 方法如果试图删除一个非空目录,会抛出 DirectoryNotEmptyException。如果你想要删除一个非空目录,你需要先遍历并删除目录中的所有文件和子目录。

Files.createDirectory() 方法只会创建单级目录。如果父目录不存在,它会抛出 NoSuchFileException。如果你想要创建多级目录,请使用 Files.createDirectories() 方法。

在上面的代码中,我假设你想要创建的是文件夹而不是文件。如果你想要创建文件,请使用 Files.createFile(path) 方法代替 Files.createDirectory(path)。

请根据你的具体需求修改上述代码。如果你需要同时处理文件和文件夹的创建和删除,你可能需要在代码中添加额外的逻辑来区分这两种情况。

你可能感兴趣的:(java,开发语言)