2010-11-22 13 views
11

Voglio creare una nuova cartella denominata log e dentro quella cartella voglio creare un file di testo chiamato log.txt e questo è il percorso che voglio creare D:\New Folderla creazione di una nuova cartella e un file di testo all'interno di quella cartella

i hanno provato questo per creare una nuova cartella denominata registro

string FilePathSave = Folder.ToString() + System.IO.Directory.CreateDirectory(@"D:\New Folder\Log"); 

E ho creato un file di testo utilizzando questo

string FilePathSave = Folder.ToString() +"log.txt"; 
File.WriteAllText(FilePathSave, TextBox1.Text);     

Ma non posso creare come D:\New Folder\Log\log.txt ... qualche suggerimento ??

risposta

28

Urm, qualcosa del genere?

var dir = @"D:\New folder\log"; // folder location 

if(!Directory.Exists(dir)) // if it doesn't exist, create 
    Directory.CreateDirectory(dir); 

// use Path.Combine to combine 2 strings to a path 
File.WriteAllText(Path.Combine(dir, "log.txt"), "blah blah, text"); 
+5

Il controllo per la directory esistente non è realmente necessario, no? 'Tutte le directory specificate nel percorso vengono create, a meno che non esistano già. - Definizione MSDN di [Directory.CreateDirectory] (http://msdn.microsoft.com/en-us/library/54a0at6s (v = vs.110) aspx) –

4

Provare a utilizzare Path.Combine qui:

string folder = Path.Combine(root, "log"); 
if(!Directory.Exists(folder)) Directory.CreateDirectory(folder); 
string file = Path.Combine(folder, "log.txt"); 
File.WriteAllText(file, text); 
6
string dir = @"D:\New Folder\Log"; 
    if (!Directory.Exists(dir)) 
    { 
     Directory.CreateDirectory(dir); 
    } 

    File.WriteAllText(Path.Combine(dir, "log.txt"), TextBox1.Text); 
0
string d = "D:\\New Folder"; 

if (!Directory.Exists) 
    Directory.CreateDirectory(d); 

File.WriteAllText(d + "\\log.txt", textBox1.Text); 

E aggiungere la direttiva System.IO utilizzando al form.

1

Tutte le altre risposte a questa domanda sono corrette. Ma vorrei sottolineare che la directory non è richiesta. Anche se la directory esiste già, nessuna eccezione verrà generata da Directory.CreateDirectory. Il codice può essere semplice come le seguenti tre linee.

const string Folder = @"C:\temp" 
Directory.CreateDirectory(Folder); 
File.WriteAllText(Path.Combine(Folder, "log.txt"), "This is the test you want to write"); 
Problemi correlati