如何自动创建缺失的文件夹?

12

在Java中,我需要将字符串写入一个新文件,例如 'c:\test\upload\myfile.txt',如果'upload'文件夹不存在,则会自动创建。如何实现?Apache Commons IO有这个API吗?

3个回答

16
File file = new File(...);
file.mkdirs(); //for several levels, without the "s" for one level
FileWriter fileWriter = new FileWriter(file);
fileWriter.write("...");

创建此抽象路径名命名的目录,包括所有必要但不存在的父目录。请注意,如果此操作失败,它可能已成功创建了某些必要的父目录。

返回值: 如果目录以及所有必要的父目录被创建,则返回true;否则返回false。

请参阅File.mkdirs()File.mkdir()


那并没有真正回答问题。 - skaffman
实际写入文件不是你所说的答案吗?考虑到问题的标题,我认为这不是问题。更新:在示例中添加了文件写入。 - Mattias Isegran Bergander

10

除了被采纳的答案外,由于该问题还提到了库 Apache Common IO,因此我在以下内容中提供使用这个好用库的解决方案:

File file = new File("...  the directory path ..."); 
FileUtils.forceMkdir(file);

这个解决方案使用了 FileUtils 类,位于 org.apache.commons.io 包中,并使用了方法 forceMkdir,其功能是“创建一个目录,包括必要但不存在的父目录”。请注意,html标签已被保留。

3
这个解决方案会让你必须捕获异常(如果传入一个已存在的文件,就会抛出 IOException 异常)。 - naXa stands with Ukraine

3
new File(fileToSave.getParent()).mkdirs();

它会返回一个布尔值以检查是否成功创建文件(如果磁盘已满或已存在名为“upload”的文件等,则会失败)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接