19 votes

créer un nouveau dossier et un fichier texte à l'intérieur de ce dossier

Je veux créer un nouveau dossier nommé log et dans ce dossier, je veux créer un fichier texte nommé log.txt et voici le chemin que je veux créer D:\New Folder

J'ai essayé de créer un nouveau dossier nommé log.

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

Et j'ai créé un fichier texte en utilisant ceci

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

Mais je ne peux pas créer comme D:\New Folder\Log\log.txt ...une suggestion ?

40voto

Jan Jongboom Points 15148

Urm, quelque chose comme ça ?

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

9voto

Stefan P. Points 5051
    string dir = @"D:\New Folder\Log";
    if (!Directory.Exists(dir))
    {
        Directory.CreateDirectory(dir);
    }

    File.WriteAllText(Path.Combine(dir, "log.txt"), TextBox1.Text);

8voto

Marc Gravell Points 482669

Essayez d'utiliser Path.Combine ici :

string folder = Path.Combine(root, "log");
if(!Directory.Exists(folder)) Directory.CreateDirectory(folder);
string file = Path.Combine(folder, "log.txt");
File.WriteAllText(file, text);

4voto

Martin Points 7515

Toutes les autres réponses à cette question sont correctes. Mais je tiens à souligner que le Directory.Exists n'est pas nécessaire . Même si le répertoire existe déjà, aucune exception ne sera levée par Directory.CreateDirectory. Le code peut être aussi simple que les trois lignes suivantes.

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

-1voto

phk Points 315
string d = "D:\\New Folder";  

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

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

Et ajoutez la directive using System.IO à votre formulaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X