gpt4 book ai didi

java - 为什么 File.renameTo(...) 不创建目标的子目录?

转载 作者:搜寻专家 更新时间:2023-11-01 02:32:05 25 4
gpt4 key购买 nike

为什么不File.renameTo(...)创建包含在目标文件路径中的子目录?


例如,

File source = new File(System.getProperty("user.dir") + 
"/src/MyFolder/MyZipFolder.zip");
File dest = new File(System.getProperty("user.dir") +
"/src/MyOtherFolder/MyZipFolder.zip");
System.out.println(source.renameTo(dest));

由于 MyOtherFolder 不存在,这将始终返回 false。为了让它工作,我必须通过以编程方式(即 mkdirs())或手动创建它们来确保所有子目录都存在。此方法未包含此功能是否有原因?

最佳答案

为什么?

可能是为了与典型操作系统和其他编程语言运行时库提供的 API 保持一致/兼容。

可能是因为如果用户不是真的有意创建中间目录,那将不是一个好主意;例如如果他/她只是在路径中输入了错误的目录名称之一。

但这并不是真正相关的。最重要的是,这就是 renameTo 方法的行为方式。

关于java - 为什么 File.renameTo(...) 不创建目标的子目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6817142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com