java bug 无法创建含同名文件的目录

来源:百度知道 编辑:UC知道 时间:2024/05/22 18:10:36
public static void main(String[] args) throws IOException {
File d_a=new File("d:/a");
d_a.mkdirs();
File f_b=new File(d_a,"b");
f_b.createNewFile();
System.out.println(f_b.mkdirs());
File d_c=new File(f_b,"c");
System.out.println(d_c.mkdirs());
}

运行结果
false
false

实际效果是只有文件 d:\a\b, 无法创建目录 d:\a\b 和 d:\a\b\c
windows 和 linux 下存在同样的问题
而且找不到可以解决的办法
linux的确是不行,我之前看错了
但是windows下却可以,这会导致一些意想不到的错误,比如程序可能会莫名其妙的爆出个FileNotFoundException
我是觉得java在处理mkdir这个命令上有些问题,如果目录是指向文件的话,就应该报个错,而不是简单的return false

而且这也导致了以下方法将不再可靠
if(!dir.exists())
dir.mkdirs();

Linux下:
/a
/a/b 文件
都生成

但是/a/b 目录不会生成,因为同一目录下不能有相同的文件(目录)名

这有什么解决不了的,郁闷,你在创建前先查看是否存在要创建的文件夹名称,有就不建,同一个文件夹下,系统本身要求不能有2个同名的。安你实际的效果就达到了。

换个工具,推荐myeclipse8.0M1

File f_b=new File(d_a,"b");
f_b.createNewFile();创建的是文件,不是文件夹.
或者是 f_b.createNewFile(); 里面应该有文件名一类的东西吧?