2012-05-14 5 views
7

В java мне нужно написать строку в новый файл, например 'c: \ test \ upload \ myfile.txt', если папка 'upload' не существует, она автоматически создаст его. как это сделать ? У Apache Commons IO есть этот API?Как автоматически создать недостающую папку?

+0

Возможный дубликат [Метод в Java для создания файла в местоположении, при необходимости создавая каталоги?] (Http://stackoverflow.com/questions/1752518/method-in-java-to-create-a-file -at-a-location-create-directories-if-needed) – skaffman

ответ

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

Создает каталог с именем этого абстрактного имени пути, включая любые необходимые, но несуществующие родительские каталоги. Обратите внимание: если эта операция не удалась, возможно, ей удалось создать некоторые из необходимых родительских каталогов.

Возвращает: true тогда и только тогда, когда каталог был создан вместе со всеми необходимыми родительскими каталогами; ложь в противном случае

См File.mkdirs() и File.mkdir()

+0

Это не отвечает на вопрос. – skaffman

+0

Фактическая запись в файл не в ответе, о котором вы говорите? Я предполагал, что это не проблема, учитывая название вопроса. Обновление: добавлена ​​запись файла в пример. –

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

Он возвращает логическое значение для проверки, если изготовление удалось (потерпит неудачу, если диск заполнен или если файл существует с именем «загрузки», и т.д.)

3

в дополнения к принятому ответу, так как этот вопрос также упоминается библиотека Apache Common IO, докладывает в следующем растворе с использованием Тхи S хорошая библиотека:

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

Это решение использует класс FileUtils из пакета org.apache.commons.io и метод forceMkdir, что «делает каталог, в том числе любые необходимые, но несуществующие родительские каталоги».

+1

Это решение заставит вас поймать исключения ('IOException', если вы передадите существующий файл). – naXa

Смежные вопросы