Risposte:
using System.IO;
...
Directory.CreateDirectory(@"C:\MP_Upload");
Directory.CreateDirectory fa esattamente quello che vuoi: crea la directory se non esiste ancora. Non è necessario eseguire prima un controllo esplicito.
Vengono create tutte le directory specificate in path, a meno che non esistano già oa meno che una parte del percorso non sia valida. Il parametro path specifica un percorso di directory, non un percorso di file. Se la directory esiste già, questo metodo non fa nulla.
(Ciò significa anche che tutte le directory lungo il percorso vengono create se necessario: è CreateDirectory(@"C:\a\b\c\d")sufficiente, anche se C:\anon esiste ancora.)
Lasciatemi aggiungere una parola di cautela sulla scelta della directory, però: la creazione di una cartella direttamente sotto la radice della partizione di sistema C:\è disapprovata. Considera la possibilità di consentire all'utente di scegliere una cartella o di creare una cartella in %APPDATA%o %LOCALAPPDATA%invece (usa Environment.GetFolderPath per quello). La pagina MSDN dell'enumerazione Environment.SpecialFolder contiene un elenco di cartelle del sistema operativo speciali e dei relativi scopi.
EnsureDirectoryExistsavrebbe reso il metodo più difficile da trovare.
Directory.CreateDirectoryverrà lanciata se il nome della cartella corrisponde a un nome di file esistente.
if(!System.IO.Directory.Exists(@"c:\mp_upload"))
{
System.IO.Directory.CreateDirectory(@"c:\mp_upload");
}
Createin CreateDirectory:)
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;
}
}
}
}
String path = Server.MapPath("~/MP_Upload/");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
Puoi provare questo ..
using System.IO;string path = "C:\MP_Upload";if(!Directory.Exists(path)){
Directory.CreateDirectory(path);}