1

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

例如:

User_Wise_List_Of_Documents_2013_On_16_04_2013

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

字符串 currentDate = DateTime.Now.Date.ToString();

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

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

不知何故,它给了我以下例外:

The given path's format is not supported.

任何帮助将不胜感激。

4

2 回答 2

2

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

查看无效字符列表

var invalidChars = Path.GetInvalidFileNameChars();

编辑

您可以使用它来替换无效字符

string newdatestr = String.Join("",currentDate.Select(c => invalidChars.Contains(c) ? '_' : c));
于 2013-04-16T07:48:38.003 回答
0

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

它将返回您网站文件夹的目录路径,"/User/Documents/"例如"C:\wwwroot\User\Documents\". 您无法从那里下载文件(除非您在本地托管,在这种情况下它可能会起作用,但仅限于您。

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

于 2013-04-16T07:35:58.940 回答