2016-04-24 102 views
3

在我的應用程序中有一個類與PdfSharp一起使用來生成一些PDF報告。我指定輸出文件夾與逐字.NET StringBuilder和逐字字符串文字

string file_path = @"D:\Intranet\Students\DailyMarks\"; 

一個字符串也有是基於一些ID和日期時間生成文件名的StringBuilder:

... sb.Append(document.Type); sb.Append(document.Id); sb.Append(DateTime.Now.ToShortString()); 

最後我做了以下

file_path + sb.toString(); 

但我的應用程序捕獲異常。調試會話後,我看到了實際我FILE_PATH

file_path = "D:\\Intranet\\Students\\DailyMarks\\..."; 

據我瞭解與StringBuilder的的toString()調用原始文件的連接後它發生。 我試圖取代FILE_PATH串是這樣的:

file_path = file_path.Replace(@"\\",@"\"); 

,但它不工作。我在哪裏做錯了?

+0

你能發佈完整的文件路徑嗎? –

+0

@AlexFilipovici,如果它會有幫助,那麼這裏是:「D:\\ Intranet \\ Students \\ DailyMarks \\ ECON_BSC2351_3:09 AM.pdf –

+0

」調試會話後,我看到實際上我的file_path是 file_path =「D :\\ Intranet \\ Students \\ DailyMarks \\ ...「 - 這只是調試器顯示字符串的方式。 – Joe

回答

4

也許這是由DateTime.Now.ToShortString()方法,它加入了禁止字符的路徑(:)引起的。

+1

我非常感謝。你對禁忌人物絕對正確(:) –

3

這完全沒問題。

"D:\\Intranet\\Students\\DailyMarks\\..." == @"D:\Intranet\Students\DailyMarks\..." 

在常規的字符串,你需要逃避斜線,在逐字它自動完成

0

今天我面對的另一個類似的情況是,把日文「:」(冒號與整個裏面)作爲文件名稱的元素,並且它工作。我想知道,爲什麼俄羅斯的冒號稱爲例外,而日語不是。很有意思。