请问jdk7新增的Files类中createDirectories 和 createDirectory

发布于 2021-12-02 15:33:17 字数 75 浏览 836 评论 3

请问jdk7新增的Files类中createDirectories 和 createDirectory这两个方法在创建文件夹时有什么区别

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

北笙凉宸 2021-12-07 23:56:22

谢谢!

飘然心甜 2021-12-07 21:10:16

static Path    createDirectories(Path dir, FileAttribute<?>... attrs)
Creates a directory by creating all nonexistent parent directories first.
继 dir 所示路径,创建给定的(若原先不存在的话)文件夹极其子文件夹构成的路径。(翻译大意)

static Path    createDirectory(Path dir, FileAttribute<?>... attrs)
Creates a new directory.
继 dir 所示路径,创建一个给定的文件夹。(翻译大意)

案例:
代码文档所在位置(路径) D:javatestOS_China, 即所谓的 "user.dir"
所要创建的文件夹,原来不存在。
编译运行后,createDirectory 和 createDirectories 分别生成指定的文件夹,和 "指定的文件夹,子文件夹" 的路径。

import java.nio.file.*;
import java.io.*;

public class Test {
	public static void main(String[] args) throws IOException  {
		Path p=Paths.get(System.getProperty("user.dir")+"\开源中国");
		Path p1=Paths.get(System.getProperty("user.dir")+"\OSCHINA\问答\代码\讨论");
		System.out.println(Files.createDirectory(p)); 
		System.out.println(Files.createDirectories(p1));
	}
}

输出:

D:javatestOS_China开源中国
D:javatestOS_ChinaOSCHINA问答代码讨论

若指定的文件夹原来就有,则发出异常: java.nio.file.FileAlreadyExistsException。见运行第二次的输出:

Exception in thread "main" java.nio.file.FileAlreadyExistsException: D:javatestOS_China开源中国
        at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:81)
        at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
        at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
        at sun.nio.fs.WindowsFileSystemProvider.createDirectory(WindowsFileSystemProvider.java:504)
        at java.nio.file.Files.createDirectory(Files.java:674)
        at Test.main(Test.java:8)

 

顾忌 2021-12-06 20:29:07

当然有区别咯。

一个是后面带s复数,一个没有带。

功能区别是:s代表会创建所需的全部文件夹,比如/a/b/c,如果b不存在则创建b,然后又创建c,返回true。

但如果是不带s的,只会创建一个文件夹,如果遇到上面的b不存在的情况,则无法创建文件夹,返回false。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文