我有这条路径可以根据日期和时间保存Excel表格。
这是显示
System.NotSupportedException
什么是正确的格式?
string strpath = Server.MapPath("~/SavedFolder/"+ username+ "/"+DateTime.Now+".xlsx/");
答案 0 :(得分:5)
您的问题(在删除最终斜杠后)是由使用您的区域设置将DateTime.Now转换为字符串引起的。这会产生一个像这样的字符串
h:\temp\08/06/2016 09:19:42.txt
并且此字符串包含无效的字符,因为您可以看到调用Path.GetInvalidFileNameChars
(斜杠,反斜杠混淆为文件夹名称的一部分,而冒号根本不是文件的有效字符)
您可以使用NET的格式化功能以这种方式准备文件名
filename= DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss");
string strpath = Server.MapPath("~/SavedFolder/"+ username+ "/"+ filename + ".xlsx");
通常,当我需要使用日期时间部分标记我的文件时,我将日期部分按年,月,日,时,分,秒的顺序排列,以便在任何文件资源管理器中查看它们的简单方法支持按名称排序。
答案 1 :(得分:1)
检查DateTime.Now.ToString()的输出(在本例中已被调用),它似乎包含不允许文件名路径的字符。
string strpath = Server.MapPath("~/SavedFolder/"+ username+ "/"+DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") +".xlsx");