发生System.NotSupportedException

时间:2016-06-08 07:01:28

标签: c#

我有这条路径可以根据日期和时间保存Excel表格。 这是显示 System.NotSupportedException

什么是正确的格式?

   string strpath = Server.MapPath("~/SavedFolder/"+ username+ "/"+DateTime.Now+".xlsx/");

2 个答案:

答案 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");