Si una carpeta no existe, créela

Uso un control FileUploader en mi aplicación. Quiero guardar un archivo en una carpeta especificada. Ahora quiero, si esta carpeta no existe, crearla primero y luego guardar mi archivo en esta carpeta. Si la carpeta ya existe, simplemente guarde el archivo en ella.

¿Como puedo hacer esto?

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

Pero no es necesario que compruebe si existe primero. De los documentos

Todos y cada uno de los directorios especificados en la ruta se crean, a menos que ya existan o a menos 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.

Utilice 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)); 

Simplemente 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: artículo sobre Directory.CreateDirectory en MSDN

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)); } 

Directory.Exists Esto explicará cómo verificar si existe un FilePath

Directory.CreateDirectory Esto explicará cómo probar y crear el FilePath si no existe

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

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); } 

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

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

El siguiente código es la mejor línea (s) de código que uso que creará el 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. >

Use el código a continuación. Usé 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"); } } 

Esta fue la respuesta que estaba buscando, pero no 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
  • variable de información del directorio para que pueda continuar manipulando como desee.

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

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

CreateDirectory también se usa 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); } 

Derivado / combinado de múltiples respuestas, 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); }