Создание папки на сервере 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);