发生System.NotSupportedException

Him*_*ngh 2 c#

我有此路径可以根据日期和时间保存Excel工作表。它显示 System.NotSupportedException

什么是正确的格式?

   string strpath = Server.MapPath("~/SavedFolder/"+ username+ "/"+DateTime.Now+".xlsx/");
Run Code Online (Sandbox Code Playgroud)

Ste*_*eve 5

您的问题(除去最后的斜杠后)是由于使用您的区域设置将DateTime.Now转换为字符串引起的。这将产生这样的字符串

 h:\temp\08/06/2016 09:19:42.txt
Run Code Online (Sandbox Code Playgroud)

并且此字符串包含无效的字符,如您所见Path.GetInvalidFileNameChars(调用中,斜杠,反斜杠被混淆为文件夹名称的一部分,而冒号根本不是文件的有效字符)

您可以使用NET的格式化功能以这种方式准备文件名

filename= DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss");
string strpath = Server.MapPath("~/SavedFolder/"+ username+ "/"+ filename + ".xlsx");
Run Code Online (Sandbox Code Playgroud)

通常,当我需要用日期时间部分标记文件时,我将日期部分按年,月,日,时,分,秒的顺序排列,以方便地查看它们在支持排序的任何文件浏览器中的排序方式按名字。