2017-07-29 5 views
-1

Je crée une application dans C# qui affiche une boîte de dialogue au démarrage et demandera le nom du projet. En attendant, il y a 2 boutons que j'ai ajoutés: Create et Exit.Comment créer un dossier contenant tous les fichiers d'un projet?

Si vous appuyez sur créer, le nom du projet que vous saisissez dans le TextBox sera enregistré avec ce nom dans le dossier Documents. Dans le dossier du projet se trouvent deux dossiers distincts appelés img et js. Et si vous avez essayé la prochaine fois de créer un projet avec un nom que le dossier existe, il ne va pas écraser le dossier (disons simplement que j'ai montré un MsgBox). Voici le code:

//Unable to create project 
     string mydir = Environment.SpecialFolder.MyDocuments + "\\" + textBox1.Text; 
     if (Directory.Exists(mydir) == true) 
     { 
       MessageBox.Show("The project name: " + textBox1.Text + " has already been created. Please consider renaming a different project name.", "Netplait", MessageBoxButtons.OK, MessageBoxIcon.Error); 
       textBox1.Focus(); 
       return; 
     } 

     if (Directory.Exists(mydir) == false) 
     { 
      Directory.CreateDirectory(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), textBox1.Text)); 
     } 
+0

Vous demandez donc comment supprimer un dossier et en créer un nouveau ou comment détecter ce dossier existe déjà? –

+0

Créez un répertoire de dossiers avec le nom de l'entrée Textbox, puis si nous avons tapé le même nom de projet que précédemment, il détectera et désactivera la requête – Roebebin

+0

Vous devez appeler [Directory.Exists] (https://msdn.microsoft.com /en-us/library/system.io.directory.exists(v=vs.110).aspx) méthode –

Répondre

3

Environment.SpecialFolder.MyDocuments est un ENUM, pas un chemin vers un répertoire existant. Votre code échoue car la concaténation de cette valeur enum à la chaîne dans la zone de texte n'a aucun sens.

Au lieu de cela vous obtenez le dossier MyDocument réel avec

string mydir = Environment.GetFolderPath(Environement.SpecialFolder.MyDocuments); 
mydir = Path.Combine(myDir, textBox1.Text); 
if(DirectoryExists(myDir)) 
{ 
    MessageBox.Show(.....); 
    textBox1.Focus(); 
    return; 
} 
else 
{ 
    Directory.CreateDirectory(myDir); 
} 

Notez également que la moissonneuse-batteuse chaîne et faire des chemins valides, il est préférable de laisser cette tâche à la méthode spécialisée Path.Combine. En passant, vous l'avez bien dans la partie Directory.CreateDirectory de votre code.

+0

Merci beaucoup. Cela a fonctionné pour moi! – Roebebin