2012-02-01 12 views

risposta

154

Questo dovrebbe aiutare:

using System.IO; 
... 

string path = @"C:\MP_Upload"; 
if(!Directory.Exists(path)) 
{ 
    Directory.CreateDirectory(path); 
} 
+6

non c'è bisogno di controllare! vedere le risposte sotto – Adrian

+3

usando System.IO; richiesto anche all'inizio – fnc12

+0

risposta superba !! –

9
if(!System.IO.Directory.Exists(@"c:\mp_upload")) 
{ 
    System.IO.Directory.CreateDirectory(@"c:\mp_upload"); 
} 
+0

Sì, certo, stavo indovinando un po '. Chi sta cercando di ricordare ogni piccolo nome di metodo ... E io ero pigro per accendere VS ... Il punto di questo - per me - è aiutare la persona a chiedere dando delle idee; se si aspettano che tutte queste piccole cose siano copia-incolla amichevole, allora ... Devono pensare anche un po ', giusto ... Corretto: cambiato 'Crea' in' CreateDirectory' :) –

152
using System.IO; 
... 

Directory.CreateDirectory(@"C:\MP_Upload"); 

Directory.CreateDirectory fa esattamente ciò che si vuole: Crea la directory se non esiste ancora. Non è necessario eseguire prima un controllo esplicito.

Qualsiasi e tutte le directory specificate nel percorso sono create, a meno che già esistono o meno che una parte del percorso non è valido. Il parametro path specifica un percorso di directory, non un percorso di file. Se la directory esiste già, questo metodo non fa nulla.

(questo significa anche che tutte le directory lungo il percorso vengono creati, se necessario:. CreateDirectory(@"C:\a\b\c\d") suffissi, anche se C:\a non esiste ancora)


Lasciatemi aggiungere una parola di cautela circa la scelta della directory, però: la creazione di una cartella direttamente sotto la radice della partizione di sistema C:\ non è corretta. Considera l'opzione di consentire all'utente di scegliere una cartella o creare una cartella in %APPDATA% o %LOCALAPPDATA% (utilizzare Environment.GetFolderPath per quello). La pagina MSDN dell'enumerazione Environment.SpecialFolder contiene un elenco di cartelle del sistema operativo speciali e i relativi scopi.

+38

+1 per aver menzionato che tu non ho bisogno di 'Directory.Exists'. –

+3

Non lo sapevo da solo; Mi vergogno; Ho fatto if-not-exist-then-create per anni. –

+8

Questo si è verificato in molti altri thread. Anche se non hai bisogno di controllare, rende l'intento del codice più chiaro, sempre più leggibile per un estraneo. Quindi mantenere l'assegno potrebbe essere una buona cosa. –

5

Questo dovrebbe funzionare

if(!Directory.Exists(@"C:\MP_Upload")) { 
    Directory.CreateDirectory(@"C:\MP_Upload"); 
} 
0
using System; 
using System.IO; 
using System.Windows.Forms; 

namespace DirCombination 
{ 
    public partial class DirCombination : Form 
    { 
     private const string _Path = @"D:/folder1/foler2/folfer3/folder4/file.txt"; 
     private string _finalPath = null; 
     private string _error = null; 

     public DirCombination() 
     { 
      InitializeComponent(); 

      if (!FSParse(_Path)) 
       Console.WriteLine(_error); 
      else 
       Console.WriteLine(_finalPath); 
     } 

     private bool FSParse(string path) 
     { 
      try 
      { 
       string[] Splited = path.Replace(@"//", @"/").Replace(@"\\", @"/").Replace(@"\", "/").Split(':'); 
       string NewPath = Splited[0] + ":"; 
       if (Directory.Exists(NewPath)) 
       {      
        string[] Paths = Splited[1].Substring(1).Split('/'); 

        for (int i = 0; i < Paths.Length - 1; i++) 
        { 
         NewPath += "/"; 
         if (!string.IsNullOrEmpty(Paths[i])) 
         { 
          NewPath += Paths[i]; 
          if (!Directory.Exists(NewPath)) 
           Directory.CreateDirectory(NewPath); 
         } 
        } 

        if (!string.IsNullOrEmpty(Paths[Paths.Length - 1])) 
        { 
         NewPath += "/" + Paths[Paths.Length - 1]; 
         if (!File.Exists(NewPath)) 
          File.Create(NewPath); 
        } 
        _finalPath = NewPath; 
        return true; 
       } 
       else 
       { 
        _error = "Drive is not exists!"; 
        return false; 
       } 
      } 
      catch (Exception ex) 
      { 
       _error = ex.Message; 
       return false; 
      } 
     } 
    } 
} 
0
String path = Server.MapPath("~/MP_Upload/"); 
    if (!Directory.Exists(path)) 
    { 
     Directory.CreateDirectory(path); 
    } 
Problemi correlati