如何创建一个新文件以及缺少的父目录?
使用时
file.createNewFile();
出现以下异常,
java.io.IOException: Parent directory of file does not exist: /.../pkg/databases/mydb
我想知道是否有一个 createNewFile 可以创建丢失的父目录?
When using
file.createNewFile();
I get the following exception
java.io.IOException: Parent directory of file does not exist: /.../pkg/databases/mydb
I am wondering is there a createNewFile that creates the missing parent directories?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你试过这个吗?
我不知道单个方法调用可以做到这一点,但是作为两个语句就非常简单了。
Have you tried this?
I don't know of a single method call that will do this, but it's pretty easy as two statements.
从java7开始,您还可以使用NIO2 API:
As of java7, you can also use NIO2 API:
如果您确定用于创建文件的路径字符串包含父目录,即如果您确定路径的形式为
/,则乔恩的答案有效。
。如果不是,即它是
形式的相对路径,则getParentFile()
将返回null
。例如
,如果您的文件路径可能包含也可能不包含父目录,那么使用以下代码会更安全:
Jon's answer works if you are certain that the path string with which you are creating a file includes parent directories, i.e. if you are certain that the path is of the form
<parent-dir>/<file-name>
.If it does not, i.e. it is a relative path of the form
<file-name>
, thengetParentFile()
will returnnull
.E.g.
So if your file path may or may not include parent directories, you are safer with the following code:
在搜索 Kotlin 解决方案时,会弹出这个通用标题的问题。
因此,对于 Kotlin 1.9.0 及更高版本,有一个新的
Path
类上的createParentDirectories()
方法:Searching for a Kotlin solution this generally-titled question pops up.
So, for Kotlin 1.9.0 and newer there is a new
createParentDirectories()
method onPath
class: