为什么要使用FileUtils.forceMkdir?

3
FileUtils.forceMkdir是Apache commons-io中的一个方法,相比Java JRE内置的File.mkdirs有何用处? forceMkdir的文档如下:
创建目录,包括必要但不存在的父目录。如果已存在指定名称的文件但不是目录,则会抛出IOException异常。如果无法创建目录(或目录不存在),则会抛出IOException异常。
mkdirs的文档如下:
创建由此抽象路径名命名的目录,包括必要但不存在的父目录。请注意,如果此操作失败,则可能已成功创建一些必要的父目录。
唯一的区别在于抛出的异常类型吗?

1
请注意,Path是比File更新且更通用的类。请参阅Files.createDirectories,它执行相同的操作。请使用JRE版本中的Files - Joop Eggen
@JoopEggen 是否有一些技术原因,使我想要使用“Files”实现而不是“File”? - Konstantin Tarashchanskiy
这是较新的代码,就像您使用List而不是ArrayList一样,Path可以是zip文件中的文件(一个zip文件系统,带有URI jar:file:/...)。新旧风格函数之间存在一些细微差别,但在这里并不重要。 - Joop Eggen
1个回答

3

看起来主要的区别在于Apache commons实现更加“响亮”:如果要创建的目录已经存在,但实际上是一个文件,它会抛出异常。这个想法似乎是对JRE实现的包装,当无法创建目录时,JRE实现会返回false而不是异常。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接