2009-08-24 12 views
15

Non riesco proprio ad aggirare questo. Sono in grado di creare un file con File.Create ... File.CrateText e così via, solo se il percorso esiste. Se non lo fa il file non verrà scritto e restituirà un errore. Come creo il percorso?Creazione di un file che il percorso non esiste?

+1

possibile duplicato di [Come creare più directory da un singolo percorso completo in C#?] (http://stackoverflow.com/questions/2134392/how-to-create-multiple -directory-da-un-singolo-pieno-path-in-c) –

risposta

29

Prova

Directory.CreateDirectory("C:\MyApp\MySubDir\Data") 

http://www.devx.com/vb2themax/Tip/18678

+0

Poiché questo post risolve il problema in questo caso le ulteriori informazioni MSDN: http://msdn.microsoft.com/en-us/library/as2f1fez.aspx – Bdiem

+1

E come controlliamo se il percorso esiste? o chiamiamo semplicemente questa funzione. –

+9

LEGGI! MSDN dice: se la cartella esiste già, CreateDirectory non fa nulla. – Bdiem

4

Sarà necessario creare la directory prima. Creerà tutte le sottodirectory che non esistono nel percorso che hai inviato. È piuttosto una potente funzionalità.

Directory.CreateDirectory(filePath); 

Se non si sa se la directory esiste o no, è possibile utilizzare Directory.Exists. Ma non per questo caso come sarebbe inutile. MSDN indica che CreateDirectory non esegue nulla se la directory esiste attualmente. Ma se si voleva verificare esistenza della directory per un altro motivo è possibile utilizzare:

if(Directory.Exists(folder) == false) 
    { 
    //do stuff 
    } 
1
Directory.CreateDirectory("path"); 
10

Dato che hai il percorso completo (Cartella + nome del file), il seguente codice garantirà il vostro directory richiesta esiste percorso (se non esiste già)

 FileInfo fileInfo = new FileInfo(fileFullPath); 

     if (!fileInfo.Exists) 
      Directory.CreateDirectory(fileInfo.Directory.FullName); 


     //create the file ... 
1

seguente dovrebbe funzionare anche

FileInfo fileInfo = new FileInfo(fileFullPath); 
    if (!fileInfo.Directory.Exists) fileInfo.Directory.Create() 

lavori directory di fileinfo, piuttosto che static directory class

Problemi correlati