Привет, ребята, у меня есть этот кусок кода, который сначала сохранит путь в переменной, проверьте, существует ли этот путь, если он не создается. затем возьмите этот путь и добавьте в него свое имя файла.
Вот код
appData = string.Format("{0}{1}\"", controller.Server.MapPath("~/App_Data/"), Guid.NewGuid().ToString());
if (!Directory.Exists(appData))
Directory.CreateDirectory(appData);
filePath = string.Format("{0}\"{1}", appData, model.File.FileName);
model.File.SaveAs(filePath);
data.Add("attachment", filePath);
Но когда он переходит к функции SaveAs, она заявляет
Illegal character in path
AppDath = C:\Users\Ben\Documents\Team Foundation Server\Team Projects\Shared\Orchard 1.6\Orchard\src\Orchard.Web\App_Data\392216b5-32ad-41f4-82bf-e074b13f25df\"
Любая идея почему?
используйте Path.Combine
filePath = Path.Combine(appData, model.File.FileName);
для создания пути appData
appData = Path.Combine(controller.Server.MapPath("~/App_Data"), Guid.NewGuid().ToString());
использование
filePath = string.Format(@"{0}\"{1}", appData, model.File.FileName);
@
Char показывает компилятору, что строка не имеет каких-либо обратных символов. Нормальный, вы используете префикс \
в некоторых специальных символах, например \n
означает новую строку. У вас строка имеет \
, поэтому компилятор пытается разрешить ее со следующим символом в строке.
Другой способ - избежать обратной косой черты со второй, например:
filePath = string.Format(@"{0}\\"{1}", appData, model.File.FileName);