c# asp.net

c# - Si una carpeta no existe, créala



asp.net (15)

string createfolder = "E: / tmp /" + uId;
System.IO.Directory.CreateDirectory (createfolder);

Utilizo un control FileUploader en mi aplicación. Quiero guardar un archivo en una carpeta específica. Ahora quiero, si esta carpeta no existe, primero crearla y luego guardar mi archivo en esta carpeta. Si la carpeta ya existe, simplemente guarda el archivo en ella.

¿Como puedo hacer esto?


Derivado / combinado de respuestas múltiples, implementarlo para mí fue tan fácil como esto:

public void Init() { String platypusDir = @"C:/platypus"; CreateDirectoryIfDoesNotExist(platypusDir); } private void CreateDirectoryIfDoesNotExist(string dirName) { System.IO.Directory.CreateDirectory(dirName); }


El siguiente código es la mejor (s) línea (s) de código que utilizo que creará un directorio si no está presente.

System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/temp/"));

Si el directorio ya existe, este método no crea un nuevo directorio, pero devuelve un objeto DirectoryInfo para el directorio existente. >


Esta fue la respuesta que estaba buscando, pero no la encontré fácilmente:

string pathToNewFolder = System.IO.Path.Combine(parentFolderPath, "NewSubFolder"); DirectoryInfo directory = Directory.CreateDirectory(pathToNewFolder); // Will create if does not already exist (otherwise will ignore)

  • ruta a la nueva carpeta dada
  • Información de directorio variable para que puedas seguir manipulándola como quieras.

Este método creará una carpeta si no existe y no hará nada si existe.

Directory.CreateDirectory(path);


Puede crear la ruta si aún no existe con un método como el siguiente:

using System.IO; private void CreateIfMissing(string path) { bool folderExists = Directory.Exists(Server.MapPath(path)); if (!folderExists) Directory.CreateDirectory(Server.MapPath(path)); }


Puede usar una cláusula try / catch y verificar si existe:

try { if (!Directory.Exists(path)) { // Try to create the directory. DirectoryInfo di = Directory.CreateDirectory(path); } } catch (IOException ioex) { Console.WriteLine(ioex.Message); }


Sólo escribe esta línea:

System.IO.Directory.CreateDirectory(myDir);

  • Si la carpeta aún no existe , se creará .
  • Si la carpeta ya existe , la línea será ignorada .

Referencia: docs


Use el siguiente código según http://forums.asp.net/p/1226236/2209871.aspx :

string subPath ="ImagesPath"; // your code goes here bool exists = System.IO.Directory.Exists(Server.MapPath(subPath)); if(!exists) System.IO.Directory.CreateDirectory(Server.MapPath(subPath));


Utilice el código de abajo. Utilicé este código para copiar archivos y crear una nueva carpeta.

string fileToCopy = "filelocation//file_name.txt"; String server = Environment.UserName; string newLocation = "C://Users//" + server + "//Pictures//Tenders//file_name.txt"; string folderLocation = "C://Users//" + server + "//Pictures//Tenders//"; bool exists = System.IO.Directory.Exists(folderLocation); if (!exists) { System.IO.Directory.CreateDirectory(folderLocation); if (System.IO.File.Exists(fileToCopy)) { MessageBox.Show("file copied"); System.IO.File.Copy(fileToCopy, newLocation, true); } else { MessageBox.Show("no such files"); } }



Como han dicho otros, use System.IO.Directory.CreateDirectory

Pero, no es necesario comprobar si existe primero. De los docs

Se crean todos 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.


if (!Directory.Exists(Path.GetDirectoryName(fileName))) { Directory.CreateDirectory(Path.GetDirectoryName(fileName)); }


string root = @"C:/Temp"; string subdir = @"C:/Temp/Mahesh"; // If directory does not exist, create it. if (!Directory.Exists(root)) { Directory.CreateDirectory(root); }

El CreateDirectory también se utiliza para crear un subdirectorio. Todo lo que tiene que hacer es especificar la ruta del directorio en el que se creará este subdirectorio. El siguiente fragmento de código crea un subdirectorio Mahesh en el directorio C:/Temp directory .

// Create sub directory if (!Directory.Exists(subdir)) { Directory.CreateDirectory(subdir); }


using System.IO if (!Directory.Exists(yourDirectory)) Directory.CreateDirectory(yourDirectory);