我需要将画布图像保存到我的C:驱动器的物理地址。但我得到了
不支持给定路径的格式。
这就是我的做法。
string path = @"C:\tmp";
string date = DateTime.Now.ToString("yy-MM-dd");
date = date.Replace("-", "");
string pathstr = Path.Combine(path, "JobData", "JSAttachments", date, jobsheetno);
Directory.CreateDirectory(pathstr);
string sketchData = Session["SketchData"].ToString();
if (sketchData != "")
{
byte[] bytes = Convert.FromBase64String(sketchData.Split(',')[1]);
sketchname = "Sketch" + DateTime.Now.ToString() + ".jpeg";
sketchname = sketchname.Replace("/", "");
sketchpath = Path.Combine(pathstr, sketchname);
using (var imageFile = new FileStream(sketchpath), FileMode.Create)
{
imageFile.Write(bytes, 0, bytes.Length);
imageFile.Flush();
}
}
草图路径字符串如下所示
C:\ tmp \ JobData \ JSAttachments \ 180116 \ 18011978 \ Sketch16012018 3:50:50 PM.jpeg
答案 0 :(得分:2)
问题是您在文件路径中使用了不受支持的字符。不允许:
(冒号),您必须使用不同的格式替换DateTime.Now.ToString()
。
这是一个更好的解决方案:
DateTime.Now.ToString("yyyy-M-dd--HH-mm-ss")
它仍然可以确保您的文件可以按名称排序并且可由用户读取
答案 1 :(得分:1)
如您所见,DateTime.Now.ToString()
返回类似16012018 3:50:50 PM
的字符串,其中文件系统不支持冒号。
使用格式说明符,就像在第二行一样。