这实际上不是一个问题,但我需要解释。我试图在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
在"// "
之后,它起作用了。我能够像那样创建目录。我不知道为什么它会这样。请给我一些解释。谢谢!
答案 0 :(得分:2)
f_paz.createNewFile();
将尝试创建新文件,而不是目录。许多Windows系统都不允许您直接在C:
中创建文件,这就是您获得例外的原因。
由于您要创建目录而不是文件,请改用f_paz.mkdir();
。最后,你不需要"//"
,顺便说一句。
如果添加空格会发生什么,即使用路径"C:/Ekap_xxx/ "
?系统将看到一个空白文件名为" "
且父目录名为"Ekap_xxx"
的路径。现在parent_z
将引用"C:/Ekap_xxx"
,因此parent_z.mkdirs();
将创建目录"Ekap_xxx"
。现在f_paz.exists()
将返回true,因为文件系统似乎仍然确定存在名称无效的文件(我必须查找有关原因的一些信息,它隐藏在本机中码)。