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, i.e. `null`.
字符串 因此,如果您的档案路径不一定包含父目录,使用下列程式码会比较安全:
File f = new File(filename);
if (f.getParentFile() != null) {
f.getParentFile().mkdirs();
}
f.createNewFile();
4条答案
按热度按时间nszi6y051#
你试过这个吗?
字符串
我不知道一个 * 单一 * 的方法调用,将做到这一点,但它是很容易的两个语句。
vsnjm48y2#
从java7开始,您还可以使用NIO2 API:
字符串
xpszyzbs3#
如果您确定创建文件时使用的路径字符串包含父目录,即如果您确定路径的格式为
<parent-dir>/<file-name>
,则可以使用该路径。如果没有,即则
getParentFile()
将返回null
。例如:
字符串
因此,如果您的档案路径不一定包含父目录,使用下列程式码会比较安全:
型
z9ju0rcb4#
搜索Kotlin解决方案时,会弹出这个标题一般的问题。
因此,对于Kotlin1.9.0和更新版本,
Path
类上有一个新的createParentDirectories()
方法:字符串