如何与丢失的父目录一起创build一个新的文件?
使用时
file.createNewFile();
我得到以下exception
java.io.IOException: Parent directory of file does not exist: /.../pkg/databases/mydb
我想知道是否有一个createNewFile创build丢失的父目录?
你尝试过吗?
file.getParentFile().mkdirs(); file.createNewFile();
我不知道一个方法调用会做到这一点,但作为两个语句很简单。
如果你确定你正在创build一个文件的pathstring包含父目录,也就是说如果你确定path的forms是<parent-dir>/<file-name>
,那么Jon的答案是有效的。
如果不是,即它是<file-name>
forms的相对path,则getParentFile()
将返回null
。
例如
File f = new File("dir/text.txt"); f.getParentFile().mkdirs(); // works fine because the path includes a parent directory. File f = new File("text.txt"); f.getParentFile().mkdirs(); // throws NullPointerException because the parent file is unknown, ie `null`.
因此,如果您的文件path可能包含或不包含父目录,则使用以下代码更安全:
File f = new File(filename); if (f.getParentFile() != null) { f.getParentFile().mkdirs(); } f.createNewFile();