2013-04-16 171 views
1

我想立即下載Excel工作表,我動態生成的文件名,其必須採用以下格式:指定路徑的格式不支持

如:

User_Wise_List_Of_Documents_2013_On_16_04_2013 

爲此,我寫下面的代碼:

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

string currentYear = DateTime.Now.Year.ToString();

文件名=使用Server.Mappath( 「〜/用戶/文檔/」)+ 「User_Wise_List_Of_Documents_」 + currentYear + 「」 +的currentdate + 是 「.xls」;

不知何故,它讓我有以下異常:

The given path's format is not supported.

任何幫助將不勝感激。

回答

2

我想你的文件名包含無效字符像:因爲你與string currentDate = DateTime.Now.Date.ToString()形成的文件名。

看到列表中的無效字符

var invalidChars = Path.GetInvalidFileNameChars(); 

編輯

你可以用它來取代無效字符

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

嗯似乎是正確的..但我如何在我的代碼中使用它? –

+0

@ankitaalung只需用'_'等另一個有效字符替換無效字符即可。我更新了答案。 – I4V

+0

我沒有工作:(下面是細 串的currentdate = DateTime.Now.Date.ToString()代碼; 串currentYear = DateTime.Now.Year.ToString(); =文件名使用Server.Mappath(」 〜/ User/Documents /「)+」User_Wise_List_Of_Documents_「+ currentYear +」_on_「+ currentDate +」.xls「; var invalidChars =路徑。GetInvalidFileNameChars(); string newdatestr = String.Join(「」,currentDate.Select(c => invalidChars.Contains(c)?'_':c)); –

0

您是否檢查了Server.MapPath("~/User/Documents/")的結果?

它會返回您網站文件夾"/User/Documents/"的目錄路徑,例如"C:\wwwroot\User\Documents\"。你不能從那裏下載一個文件(除非你在本地託管,在這種情況下它可能工作,但只適用於你)

可能你正在尋找Page.ResolveUrl()函數,它將創建一個web uri相對於你的網站,而不是文件系統。

+0

是逸岸我已經從相當長一段時間救了我的文件,直到我決定追加在當前年份和日期時間文件名。 –

+0

不,我不是在我的項目之外創建它。它是我在項目中創建的一個文件夾。 –

相關問題