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");
}
}
Directory.Exists
Esto explicará cómo verificar si existe un FilePath
Directory.CreateDirectory
Esto explicará cómo probar y crear FilePath si no existe.
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);