嘿伙计我有这段代码首先在变量中存储一个路径,检查该路径是否存在,如果没有创建它。然后采取该路径并将我的文件名添加到它。
这是代码
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 项目\共享\果园 1.6 \果园\ SRC \ Orchard.Web \程序App_Data \ 392216b5-32ad-41f4-82bf-e074b13f25df \"
知道为什么吗?
答案 0 :(得分:4)
filePath = Path.Combine(appData, model.File.FileName);
创建appData
路径
appData = Path.Combine(controller.Server.MapPath("~/App_Data"), Guid.NewGuid().ToString());
答案 1 :(得分:1)
使用
filePath = string.Format(@"{0}\"{1}", appData, model.File.FileName);
@
char显示编译器该字符串没有任何反斜杠字符。
Normaly,您在某些特殊字符中使用\
前缀,例如\n
表示换行符。您的字符串有\
,因此编译器会尝试使用字符串中的下一个字符来解析它。
另一种方法是使用第二个来逃避反斜杠,如下所示:
filePath = string.Format(@"{0}\\"{1}", appData, model.File.FileName);