2010-11-22 10 views
11

Quiero crear una nueva carpeta con el nombre log y dentro de esa carpeta Quiero crear un archivo de texto llamado log.txt y este es el camino que quiero para crear D:\New Foldercrear una nueva carpeta y un archivo de texto dentro de esa carpeta

i han intentado esto para crear una nueva carpeta con el nombre de registro

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

y he creado un archivo de texto que utiliza este

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

Pero no puedo crear como D:\New Folder\Log\log.txt ... alguna sugerencia?

Respuesta

28

Urm, algo como esto?

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

La verificación del directorio existe no es realmente necesaria, ¿no? 'Todos y cada uno de los directorios especificados en la ruta de acceso se crean, a menos que ya existan' - Definición de MSDN de [Directory.CreateDirectory] (http://msdn.microsoft.com/en-us/library/54a0at6s (v = vs.110) .aspx) –

4

Trate de usar Path.Combine aquí:

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); 

Y añada la directiva using System.IO a su formulario.

1

Todas las otras respuestas a esta pregunta son correctas. Pero me gustaría señalar que el Directory.Exists no es necesario. Incluso si el directorio ya existe, Directory.CreateDirectory no lanzará ninguna excepción. El código puede ser tan simple como las siguientes tres líneas.

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