不支持给定的路径's格式

本文关键字:格式 路径 不支持 | 更新日期: 2023-09-27 18:09:36

我正在尝试下载一个excel表格,我正在动态生成它的文件名,它必须是以下格式:

,

User_Wise_List_Of_Documents_2013_On_16_04_2013

为此,我编写了以下代码:

string currentDate = DateTime.Now.Date.ToString();

字符串currentYear = DateTime.Now.Year.ToString ();

filename = Server.MapPath("~/User/Documents/") +"User_Wise_List_Of_Documents_" + currentYear + "on" + currentDate +"xls";

不知怎么的,它给了我以下的例外:

The given path's format is not supported.

不支持给定的路径's格式

我认为您的文件名包含:等无效字符,因为您正在使用string currentDate = DateTime.Now.Date.ToString()组成文件名。

请查看无效字符列表

var invalidChars = Path.GetInvalidFileNameChars();

编辑

你可以用它来替换无效的字符

string newdatestr = String.Join("",currentDate.Select(c => invalidChars.Contains(c) ? '_' : c));

检查Server.MapPath("~/User/Documents/")的结果了吗?

它将返回您的网站文件夹"/User/Documents/"的目录路径,例如"C:'wwwroot'User'Documents'"。你不能从那里下载文件(除非你在本地托管,在这种情况下它可能会工作,但只对你。

可能你正在寻找Page.ResolveUrl()函数,它将创建一个相对于你的网站的web uri,而不是文件系统。