Java,创建文件和文件夹

时间:2011-11-08 02:39:44

标签: java io

我在Windows中使用Java创建文件。这有效:

String newFile = "c:/"+Utilities.timeFormat();
...
some code that creates a folder

这不起作用:

String newFile = "c:/newDirectory/"+Utilities.timeFormat();
...
some code that creates a folder

5 个答案:

答案 0 :(得分:2)

您必须使用File.mkdir()File.mkdirs()方法create a folder

编辑:

 String path="c:/newDirectory";
 File file=new File(path);
 if(!file.exists())
     file.mkdirs(); // or file.mkdir()

 file=new File(path + "/" + Utilities.timeFormat());   
 if(file.createNewFile())
  {
  }

答案 1 :(得分:1)

在不知道创建目录的实际代码的情况下:

使用mkdirs()而不是mkdir()

答案 2 :(得分:0)

您是否可以检查您是否有权在c:/

中创建文件夹

你能告诉我们堆栈跟踪吗?

答案 3 :(得分:0)

如果" newDirectory"还不存在,您应该使用mkdirs()类中的方法File来创建它们之间的所有目录。

答案 4 :(得分:0)

目录不存在的事实可能是他第一次没有工作的原因。正如许多人所指出的那样,使用mkdirs()将确保如果要写入的文件位于子文件夹中,它将创建它们。现在这就是它的样子:

File file = new File( new File("c:/newDirectory"), Utilities.timeFormat() );
if( !file.getParentFile().exists() ) {
   file.getParentFile().mkdirs();
}
OutputStream stream = new BufferedOutputStream( new FileOutputStream( file ) );
try {
   // put your code here to write the file
} finally {
   stream.close();
}

注意我没有使用+来创建路径。相反,我创建了一个File对象,并将其传递给父文件和文件名。另请注意,我没有在父文件名和文件名之间放置路径分隔符。使用File构造函数可以处理与系统无关的创建路径的方法。