Я использую элемент управления FileUploader в своем приложении. Я хочу сохранить файл в указанной папке. Теперь я хочу, если эта папка не существует, сначала ее создать, а затем сохранить файл в этой папке. Если папка уже существует, просто сохраните файл в ней.
Как я могу это сделать?
Как уже говорили другие, используйте System.IO.Directory.CreateDirectory
Но вам не нужно проверять, существует ли он первым. Из документов
Любые и все каталоги, указанные в path, создаются, если они не существуют или если какая-то часть пути недопустима. Если каталог уже существует, этот метод не создает новый каталог, но возвращает объект DirectoryInfo для существующего каталога.
Используйте приведенный ниже код в соответствии с 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));
Просто напишите эту строку:
System.IO.Directory.CreateDirectory(myDir);
Directory.Exists
Это объяснит, как проверить, существует ли FilePath
Directory.CreateDirectory
Это объяснит, как попробовать и создать FilePath, если он не существует
Вы можете создать путь, если он еще не существует, с помощью следующего метода:
using System.IO;
private void CreateIfMissing(string path)
{
bool folderExists = Directory.Exists(Server.MapPath(path));
if (!folderExists)
Directory.CreateDirectory(Server.MapPath(path));
}
if (!folderExists)
не нужен.
using System.IO
if (!Directory.Exists(yourDirectory))
Directory.CreateDirectory(yourDirectory);
Вы можете использовать предложение try/catch и проверить, существует ли он:
try
{
if (!Directory.Exists(path))
{
// Try to create the directory.
DirectoryInfo di = Directory.CreateDirectory(path);
}
}
catch (IOException ioex)
{
Console.WriteLine(ioex.Message);
}
Этот метод будет создавать папку, если она не существует, и ничего не делать, если существует
Directory.CreateDirectory(path);
if (!Directory.Exists(Path.GetDirectoryName(fileName)))
{
Directory.CreateDirectory(Path.GetDirectoryName(fileName));
}
Следующий код - лучшая строка (и) кода, который я использую, который создаст каталог, если его нет.
System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/temp/"));
Если каталог уже существует, этот метод не создает новый каталог, но возвращает объект DirectoryInfo для существующего каталога. >
Это был ответ, который я искал, но не смог найти:
string pathToNewFolder = System.IO.Path.Combine(parentFolderPath, "NewSubFolder");
DirectoryInfo directory = Directory.CreateDirectory(pathToNewFolder);
// Will create if does not already exist (otherwise will ignore)
Используйте код ниже. Я использовал этот код для копирования файлов и создания новой папки.
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.Exist, чтобы проверить, существует ли каталог или нет.
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 также используется для создания подкаталога. Все, что вам нужно сделать, это указать путь к каталогу, в котором будет создан этот подкаталог. Следующий фрагмент кода создает подкаталог Mahesh в C:\Temp directory
.
// Create sub directory
if (!Directory.Exists(subdir))
{
Directory.CreateDirectory(subdir);
}
Выведенный/комбинированный из нескольких ответов, реализация которого для меня была такой же простой, как это:
public void Init()
{
String platypusDir = @"C:\platypus";
CreateDirectoryIfDoesNotExist(platypusDir);
}
private void CreateDirectoryIfDoesNotExist(string dirName)
{
System.IO.Directory.CreateDirectory(dirName);
}