gpt4 book ai didi

java - 文件.createDirectory() : FileAlreadyExistsException

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:06:45 24 4
gpt4 key购买 nike

我在使用 Java 7 的 Files 类时遇到了一个看似奇怪的问题。我想在开始编写之前确保我的目录和文件存在以避免 FileNotFoundException,并且根据 Javadocs , createDirectory 检查“文件是否存在,如果不存在则创建目录”

所以如果它先检查,为什么我在目录已经存在的情况下,下面的代码会出现问题?

private void writeFile() throws IOException {
// Make sure parent directory and file are ready
File file = "mydirectory/my.file";
File parent = file.getParentFile();
if (parent != null)
Files.createDirectory(parent.toPath()); // Why do I get FileAlreadyExistsException? =[
Files.createFile(file.toPath());

// Do some file writing stuff!
}

我知道我可以只做一个“如果文件不存在则创建”的事情,但我认为这种方法的全部意义在于为我处理所有这些事情!

异常数据:

java.nio.file.FileAlreadyExistsException: mydirectory
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileSystemProvider.createDirectory(Unknown Source)
at java.nio.file.Files.createDirectory(Unknown Source)

最佳答案

来自documentation

public static Path createDirectories(Path dir, FileAttribute<?>... attrs) throws IOException

“通过首先创建所有不存在的父目录来创建目录。与 createDirectory 方法不同,如果目录已经存在而无法创建,则不会抛出异常。”

也许你可以用那个

关于java - 文件.createDirectory() : FileAlreadyExistsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16179102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com