文件字符串制作目录而不是文件名

时间:2013-12-11 17:45:48

标签: java

当我用Java创建文件时,它会创建一个文件名为+文件类型为“extension”的文件夹,例如

String path = "C:"+File.separator+"hello"+File.separator+"hi.txt";
File f = new File(path);
f.mkdirs(); 
f.createNewFile();

此示例创建名为“hi.txt”的文件夹或目录,而不是我期望的文件。为什么这不是一个文件?

3 个答案:

答案 0 :(得分:1)

首先调用f.mkdirs();,然后使用给定路径创建目录。首先使用f.getParentFile().mkdirs()创建父目录,然后使用f.createNewFile()

创建文件
String path = "C:"+File.separator+"hello"+File.separator+"hi.txt";
File f = new File(path);
f.getParentFile().mkdirs();
f.createNewFile();

答案 1 :(得分:0)

首先指示VM创建目录f,然后创建文件f。您要创建f父目录,而不是目录f

File parent = f.getParentFile();
boolean ret = parent.mkdirs();

您现在应该检查ret,以了解是否有任何错误。

答案 2 :(得分:0)

您希望创建C:\hello\hi.txt的{​​em>父路径所代表的目录,即C:\hello,然后自行创建文件。

如果您使用的是Java 7,最明智的方法是使用PathsFiles,如下所示:

Path path = Paths.get("C:", "hello", "hi.txt");
Files.createDirectories(path.getParent());
Files.createFile(path);