Se uma pasta não existir, crie-a
uso um controlo de ficheiros na minha aplicação. Eu quero salvar um arquivo em uma pasta especificada. Agora eu quero, Se esta pasta não existe, primeiro criá-lo, e então salvar meu arquivo para esta pasta. Se a pasta já existe, então basta salvar o arquivo nela.
Como posso fazer isto?15 answers
Como outros já disseram, use System.IO.Directory.CreateDirectory
Todas as pastas indicadas na path são criadas, a menos que já existe ou a menos que alguma parte do caminho seja inválida. Caminho o parâmetro indica uma localização de directório, não uma localização de ficheiro. Se a o directório já existe, este método não faz nada.
Utilize o código abaixo, de acordo com 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));
Escreve esta linha:
System.IO.Directory.CreateDirectory(myDir);
- Se a pasta não existir Ainda , será criada .
- Se a pasta já existir , a linha será ignorada.
Referência: artigo sobre a pasta.CreateDirectory no MSDN
Você pode criar o caminho se ele ainda não existir com um método como o seguinte:
using System.IO;
private void CreateIfMissing(string path)
{
bool folderExists = Directory.Exists(Server.MapPath(path));
if (!folderExists)
Directory.CreateDirectory(Server.MapPath(path));
}
Directory.Exists
Isto irá explicar como verificar se existe um ficheiro
Directory.CreateDirectory
Isto irá explicar como tentar criar o FilePath se ele não existir
using System.IO
if (!Directory.Exists(yourDirectory))
Directory.CreateDirectory(yourDirectory);
Pode utilizar uma cláusula de tentativa/captura e verificar se 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 irá criar a pasta se não existir e não fará nada se existir
Directory.CreateDirectory(path);
if (!Directory.Exists(Path.GetDirectoryName(fileName)))
{
Directory.CreateDirectory(Path.GetDirectoryName(fileName));
}
Seguir o código é a(s) melhor (S) Linha (s) de código que eu uso que irá criar diretório se não estiver presente .
System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/temp/"));
Se o directório já existir, este método não cria um novo directório, mas devolve um objecto DirectoryInfo para o directório existente. >
Esta era a resposta que eu procurava, mas não a encontrei facilmente:
string pathToNewFolder = System.IO.Path.Combine(parentFolderPath, "NewSubFolder");
DirectoryInfo directory = Directory.CreateDirectory(pathToNewFolder);
// Will create if does not already exist (otherwise will ignore)
- localização da nova pasta dada
- a variável de informação da pasta para que possa continuar a manipulá-la como quiser.
Utilizar abaixo do Código. Usei este código para copiar ficheiros e criar uma nova pasta.
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");
}
}
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);
}
O CreateDirectory também é usado para criar um sub directório. Tudo o que você tem a fazer é especificar a localização do diretório no qual esta subdiretoria será criada. O seguinte excerto de código cria uma subdiretoria de Mahesh em C:\Temp directory
.
// Create sub directory
if (!Directory.Exists(subdir))
{
Directory.CreateDirectory(subdir);
}
Derivado/combinado de várias respostas, implementá-lo para mim foi tão fácil como isto:
public void Init()
{
String platypusDir = @"C:\platypus";
CreateDirectoryIfDoesNotExist(platypusDir);
}
private void CreateDirectoryIfDoesNotExist(string dirName)
{
System.IO.Directory.CreateDirectory(dirName);
}