gpt4 book ai didi

java - 在根目录下创建文件,奇怪的响应

转载 作者:行者123 更新时间:2023-11-30 02:58:49 26 4
gpt4 key购买 nike

这实际上不是一个问题,但我需要解释。我试图在 C://驱动器下创建目录。所以;

try {
File f_paz = new File("c://Ekap_Pazarlik_xml" + file_currentDate + "//");

File parent_z = f_paz.getParentFile();
if (null != parent_z) {
parent_z.mkdirs();
}
if (!f_paz.exists()) {
f_paz.createNewFile();
}
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}

我尝试过,但它给了我“访问被拒绝”错误,所以我尝试了网络上的所有解决方案。什么也没发生。

奇怪的是,我决定在后面加上“空格”;

File f_paz = new File("c://Ekap_Pazarlik_xml" + file_currentDate + "// ");
here

就在“//”之后,它起作用了。我能够像这样创建目录。我不知道为什么会这样。请给我一些解释。谢谢!

最佳答案

f_paz.createNewFile();将尝试创建一个新文件,而不是目录。许多Windows系统不允许您直接在C:中创建文件这就是为什么你会得到异常(exception)。

由于您要创建目录而不是文件,请使用 f_paz.mkdir();反而。您不需要"//"最后,顺便说一句。

如果添加空格,即使用路径 "C:/Ekap_xxx/ " 会发生什么?系统将看到一个带有空白文件名的路径 " "和父目录名称 "Ekap_xxx" 。现在parent_z将引用"C:/Ekap_xxx"因此parent_z.mkdirs();将创建目录"Ekap_xxx" 。现在f_paz.exists()将返回 true,因为文件系统似乎决定名称无效的文件仍然存在(我必须查找一些有关原因的信息,它隐藏在 native 代码中)。

关于java - 在根目录下创建文件,奇怪的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36470208/

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