getParentFile()的作用是获得父目录
问题就是.mkdirs(); 这个方法只能生成一层一层的文件夹,不能生成文件,而你的file对象路径是直接到文件那一层的,不用getParentFile()获得父目录的话,就会想你说的那样生成两个文件夹而不是你想要的文件,所以要先调用getParentFile()获得父目录,用.mkdirs()生成父目录文件夹,最后把你想要的文件生成到这个文件夹下面,就是想要的结果。
String fileName="new .txt"; String dir="mydir1/mydir2"; File f=new File(dir,fileName); 当我直接 f.mkdirs();后 new .txt也变成了目录 而f.getParentFile().mkdirs(); 只有mydir1/mydir2的目录