All infos - Создание папки на сервере C#
03
окт

Создание папки на сервере C#

Создание папки на сервере на примере проекта asp.net mvc 4.

Задача сохранять файл по пути content\images\катагорияId\подкатегорияId\objId.img, для этого необходимо динамически создавать папки новых категорий и подкатегорий.

Создаём условие на проверку существования папки с именем = id категории, если нет то создаём папку.

if (!Directory.Exists(Path.Combine(Server.MapPath(Url.Content("~/Content")), Constants.PRODUCT_IMAGES_FOLDER, Constants.PRODUCT_IMAGES_ONTEXT_FOLDER, obj.category_id.ToString(CultureInfo.InvariantCulture))))
{
    Directory.CreateDirectory(Path.Combine(Server.MapPath(Url.Content("~/Content")), Constants.PRODUCT_IMAGES_FOLDER, 
    Constants.PRODUCT_IMAGES_ONTEXT_FOLDER, obj.category_id.ToString(CultureInfo.InvariantCulture)));
}

Проверяем на существование папки с именем = id подкатегории, если нет то создаём

if (!Directory.Exists(Path.Combine(Server.MapPath(Url.Content("~/Content")), Constants.PRODUCT_IMAGES_FOLDER, Constants.PRODUCT_IMAGES_ONTEXT_FOLDER,
obj.category_id.ToString(CultureInfo.InvariantCulture),obj.subcategory_id.ToString(CultureInfo.InvariantCulture))))
{
   Directory.CreateDirectory(Path.Combine(Server.MapPath(Url.Content("~/Content")), Constants.PRODUCT_IMAGES_FOLDER, 
   Constants.PRODUCT_IMAGES_ONTEXT_FOLDER, obj.category_id.ToString(CultureInfo.InvariantCulture),obj.subcategory_id.ToString(CultureInfo.InvariantCulture)));
}

Названия "постоянных" папок храним константах.

 

Ещё вариант в asp.net

AppDomain.CurrentDomain.BaseDirectory

Корневая папка приложения.

 

private static string GetDataFilePath() => HttpRuntime.AppDomainAppVirtualPath != null ? Path.Combine(HttpRuntime.AppDomainAppPath, "App_Data") : Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

Share this post