在Java中,如何在当前工作目录中创建目录
在我的Java应用程序的当前工作目录下创建名为“Foo”的目录(如果它还不存在的话),最简洁的方法是什么在Java中,如何在当前工作目录中创建目录,java,filesystems,Java,Filesystems,在我的Java应用程序的当前工作目录下创建名为“Foo”的目录(如果它还不存在的话),最简洁的方法是什么 或者,从一个稍有不同的角度:Java与.NET中的Directory.CreateDirectory(“Foo”)的等价物是什么?Java.io包没有目录类,但您可以在文件类上使用mkdir()方法: (new File("Foo")).mkdir() 请注意,mkdir()有两种不同的故障模式: “如果存在安全管理器,且其checkWrite()方法不允许创建命名目录”,则将抛出Secu
或者,从一个稍有不同的角度:Java与.NET中的
Directory.CreateDirectory(“Foo”)
的等价物是什么?Java.io包没有目录
类,但您可以在文件
类上使用mkdir()
方法:
(new File("Foo")).mkdir()
请注意,mkdir()
有两种不同的故障模式:
checkWrite()
方法不允许创建命名目录”,则将抛出SecurityException
mkdir()
将返回false。(更具体地说,当且仅当创建目录时,它将返回true。)Directory.CreateDirectory()
如果目录存在,则不执行任何操作。
这样做是有道理的——“创建一个
目录”;“好的,目录是
创建”。如果是,有关系吗
现在或更早创建;由此
过程还是其他?如果你真的
关心那件事你不是在问另一个问题吗
问题:“这个目录存在吗?”
下一个警告是mkdir()
一次不会创建多个目录。对于我的名为“Foo”的目录的简单示例,这很好;但是,如果要在目录Foo中创建名为Bar的目录(即创建目录“Foo/Bar”),则必须记住使用mkdirs()
方法
因此,要解决所有这些注意事项,您可以使用以下帮助器方法:
public static File createDirectory(String directoryPath) throws IOException {
File dir = new File(directoryPath);
if (dir.exists()) {
return dir;
}
if (dir.mkdirs()) {
return dir;
}
throw new IOException("Failed to create directory '" + dir.getAbsolutePath() + "' for an unknown reason.");
}
我看到了您的
createDirectory
方法的一种更简洁的形式:
File f = new File(xyz);
if (!f.exists() && !f.mkdirs()) throw new IOException("Could not create directory " + f);
可能还值得检查
f
是否存在,但它不是一个目录。您提出了一个问题,并立即发布了自己的答案?以前见过,这个想法是,发布问答组合的用户希望对一些问题给出一个彻底的答案,这些问题在上下文中可能看起来很简单,这将引导那些还不知道如何回答的人找到自己的答案。在我看来完全可以接受,尽管有点困惑。啊,现在我知道Stackoverflow愿景()的“博客”部分是如何产生的:)你问了一个问题,并立即发布了自己的答案?-1。发布问题和答案似乎很奇怪。堆栈溢出不是供您演讲的麦克风。+1。可以发布您自己的问题和答案。有助于社区和有用的未来参考。如果人们不同意你的答案,那么他们可以提供更好的答案。在Meta上快速搜索似乎同意这一点。根据我之前的评论:+1也在中的顶部提问和回答自己的问题也很好,但要假装自己处于危险之中:用问题的形式表达出来。