Respuestas:
using System.IO;
...
Directory.CreateDirectory(@"C:\MP_Upload");
Directory.CreateDirectory hace exactamente lo que usted quiere: crea el directorio si aún no existe. No es necesario hacer una verificación explícita primero.
Se crean todos y cada uno de los directorios especificados en la ruta, a menos que ya existan o que alguna parte de la ruta no sea válida. El parámetro de ruta especifica una ruta de directorio, no una ruta de archivo. Si el directorio ya existe, este método no hace nada.
(Esto también significa que todos los directorios a lo largo de la ruta se crean si es necesario: es CreateDirectory(@"C:\a\b\c\d")
suficiente, incluso si C:\a
aún no existe).
Sin embargo, permítame agregar una advertencia sobre su elección de directorio: la creación de una carpeta directamente debajo de la raíz de la partición del sistema C:\
está mal vista. Considere permitir que el usuario elija una carpeta o cree una carpeta en %APPDATA%
o en su %LOCALAPPDATA%
lugar (use Environment.GetFolderPath para eso). La página de MSDN de la enumeración Environment.SpecialFolder contiene una lista de carpetas especiales del sistema operativo y sus propósitos.
EnsureDirectoryExists
habría hecho que el método fuera más difícil de encontrar.
Directory.CreateDirectory
se lanzará si el nombre de la carpeta coincide con un nombre de archivo existente.
if(!System.IO.Directory.Exists(@"c:\mp_upload"))
{
System.IO.Directory.CreateDirectory(@"c:\mp_upload");
}
Create
a 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);
}
Puedes probar esto ...
using System.IO;string path = "C:\MP_Upload";if(!Directory.Exists(path)){
Directory.CreateDirectory(path);}