2012-05-14 8 views
7

En Java, necesito escribir una cadena en un archivo nuevo, como 'c: \ test \ upload \ myfile.txt', si la carpeta 'cargar' no existe, la creará automáticamente. cómo hacerlo ? Apache Commons IO tiene esta API?¿Cómo crear automáticamente una carpeta faltante?

+0

posible duplicado de [Método en Java para crear un archivo en una ubicación, crear directorios si es necesario?] (Http://stackoverflow.com/questions/1752518/method-in-java-to-create-a-file -at-a-location-creating-directories-if-necessary) – skaffman

Respuesta

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

Crea el directorio indicado por esta vía de acceso abstracta, incluyendo cualquier directorio padre necesarias pero que no existen. Tenga en cuenta que si esta operación falla, puede haber tenido éxito al crear algunos de los directorios principales necesarios.

Devuelve: verdadero si y sólo si se creó el directorio, junto con todos los directorios superiores necesarios; falso en caso contrario

Ver File.mkdirs() y File.mkdir()

+0

Eso no responde la pregunta. – skaffman

+0

La escritura real en el archivo no está en la respuesta que quieres decir? Supuse que ese no era el problema teniendo en cuenta el título de la pregunta. Actualización: se agregó la escritura de archivos al ejemplo. –

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

Devuelve un valor lógico para comprobar si la toma de éxito (fallará si el disco está lleno o si existe un archivo con el nombre de 'carga', etc.)

3

en Además a la respuesta aceptada, ya que la cuestión también mencionó la biblioteca Apache Commons IO, reporto en el siguiente una solución mediante el uso de Thi s Niza biblioteca:

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

Esta solución utiliza la clase FileUtils, del paquete de org.apache.commons.io y el método forceMkdir, que "Hace un directorio, incluyendo cualquier directorio padre necesarias pero no existentes".

+1

Esta solución lo forzará a detectar excepciones ('IOException' si pasa un archivo existente). – naXa

Cuestiones relacionadas