Domanda

OK, mi sento come questo dovrebbe essere facile, ma sto ovviamente manca qualcosa di fondamentale per la scrittura del file in Java. Ho questo:

File someFile = new File("someDirA/someDirB/someDirC/filename.txt");

e voglio solo scrivere sul file. Tuttavia, mentre someDirA esiste, someDirB (e quindi someDirC e filename.txt) non esistono. In questo modo:

BufferedWriter writer = new BufferedWriter(new FileWriter(someFile));

lancia una FileNotFoundException. Beh, ehm, non scherzo. Sto cercando di creare, dopo tutto. Devo spezzare il percorso del file in componenti, creare le directory e quindi creare il file prima di creare un'istanza dell'oggetto FileWriter?

È stato utile?

Soluzione

È necessario creare tutte le directory precedenti prima. E qui è come farlo. È necessario creare un oggetto che rappresenta il percorso che si desidera di esistere e quindi chiamare .mkdirs () su di esso. Quindi assicuratevi di creare il nuovo file.

final File parent = new File("someDirA/someDirB/someDirC/");
if (!parent.mkdirs())
{
   System.err.println("Could not create parent directories ");
}
final File someFile = new File(parent, "filename.txt");
someFile.createNewFile();

Altri suggerimenti

È possibile utilizzare il metodo "mkdirs" sulla classe File in Java. mkdirs creeranno la directory, e creerà le directory principali inesistenti, se necessario.

http : //java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#mkdirs%28%29

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top