Если папка не существует, создайте её
У меня есть контрол FileUploader
в моем приложении. Я хочу сохранить файл в указанной папке. Если эта папка не существует, я хочу сначала создать её, а затем сохранить файл в эту папку. Если папка уже существует, то просто сохранить файл в неё.
Как я могу это сделать?
5 ответ(ов)
Вы можете создать путь, если он еще не существует, с помощью следующего метода:
using System.IO;
private void CreateIfMissing(string path)
{
bool folderExists = Directory.Exists(Server.MapPath(path));
if (!folderExists)
Directory.CreateDirectory(Server.MapPath(path));
}
Этот метод проверяет наличие директории по указанному пути с помощью Directory.Exists()
. Если директория не существует, то она создается с использованием Directory.CreateDirectory()
. Не забудьте использовать Server.MapPath()
, чтобы преобразовать виртуальный путь в физический.
Этот метод создаст папку, если она не существует, и не будет ничего делать, если она уже есть:
Directory.CreateDirectory(path);
Вы можете использовать блок try/catch, чтобы проверить, существует ли директория:
try
{
if (!Directory.Exists(path))
{
// Попробуйте создать директорию.
DirectoryInfo di = Directory.CreateDirectory(path);
}
}
catch (IOException ioex)
{
Console.WriteLine(ioex.Message);
}
В этом примере, если директория по указанному пути не существует, она будет создана. Если возникнет ошибка ввода-вывода, сообщение исключения будет выведено в консоль.
Ваш код проверяет, существует ли директория, в которой должен находиться файл, и если её нет, то создаёт её. Вот перевод вашего кода на русский, который даст понять его суть:
// Проверяем, существует ли директория, где должен находиться файл
if (!Directory.Exists(Path.GetDirectoryName(fileName)))
{
// Если директория не существует, создаём её
Directory.CreateDirectory(Path.GetDirectoryName(fileName));
}
Таким образом, сначала идёт проверка на существование директории с помощью Directory.Exists()
, а если она отсутствует (!
), вызывается метод CreateDirectory()
, который создаёт недостающую директорию. Убедитесь, что переменная fileName
содержит корректный путь к файлу, чтобы получить правильное имя директории.
Создание новой папки, исходя из пути к родительской папке:
string pathToNewFolder = System.IO.Path.Combine(parentFolderPath, "NewSubFolder");
DirectoryInfo directory = Directory.CreateDirectory(pathToNewFolder);
// Если папка не существует, она будет создана (в противном случае действие будет проигнорировано)
- Указывается путь к новой папке.
- Переменная с информацией о директории, чтобы вы могли продолжать с ней работать по своему усмотрению.
JavaScriptSerializer - Сериализация JSON перечислений в виде строк
Как установить заголовок Content-Type для запроса HttpClient?
Как получить согласованное побайтовое представление строк в C# без ручного задания кодировки?
Как вывести список всех файлов в директории?
ASP.NET Веб-сайт или ASP.NET Веб-приложение?