2009-08-24 5 views
15

Je ne peux pas contourner cela. Je suis capable de créer un fichier avec File.Create ... File.CrateText et ainsi de suite, seulement si le chemin existe. Si ce n'est pas le cas, le fichier ne sera pas écrit et renvoie une erreur. Comment créer le chemin?Création d'un fichier que le chemin n'existe pas?

+1

duplication possible de [Comment créer plusieurs répertoires à partir d'un seul chemin complet en C#?] (http://stackoverflow.com/questions/2134392/how-to-create-multiple -directories-from-a-single-path-chemin-en-c) –

Répondre

29

Essayez

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

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

+0

Comme ce message est le plus susceptible de résoudre votre problème ici les informations MSDN supplémentaires: http://msdn.microsoft.com/en-us/library/as2f1fez.aspx – Bdiem

+1

Et comment vérifions-nous si le chemin existe? ou nous appelons simplement cette fonction. –

+9

LIRE! MSDN dit: Si le dossier existe déjà, CreateDirectory ne fait rien. – Bdiem

4

Vous devez créer le répertoire en premier. Il créera tous les sous-répertoires qui n'existent pas dans le chemin que vous lui envoyez. C'est une fonctionnalité assez puissante.

Directory.CreateDirectory(filePath); 

Si vous ne savez pas si le répertoire existe ou non, vous pouvez utiliser Directory.Exists. Mais pas pour ce cas comme cela serait inutile. MSDN indique que CreateDirectory ne fait rien si le répertoire existe actuellement. Mais si vous voulez vérifier l'existance du répertoire pour une autre raison, vous pouvez utiliser:

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

Étant donné que vous avez le chemin complet (dossier + Nom du fichier), le code suivant assurera votre répertoire requis chemin existe (si elle n'existe pas déjà)

 FileInfo fileInfo = new FileInfo(fileFullPath); 

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


     //create the file ... 
1

ci-dessous devrait également fonctionner

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

travail sur répertoire de fileinfo, plutôt que classe de répertoire statique

Questions connexes