我需要this.Normally幫助如果我使用的OpenFileDialog,我一般會還給像這樣的FileName屬性:[C#]文件路徑中逐字字符串文字?
string path = "C:\\Users\\Users\\SkyDrive\\Study Stuffs\\C and C++ development\\Comp Sci 322 - C Sharp\\Projects\\Main_UI_Older\\Test Case\\a test.xml";
,如果我用它來創建一個新的FileStream關閉呢?這將直接工作。 I.E:
FileStream my_fileStream = new FileStream(path, FileMode.Open, FileAccess.Read); // Works just fine.
但是,這將拒絕使用WebClient.DownloadFile方法。
WebClient my_downloader = new WebClient();
my_downloader.DownloadFile("[URL HERE]", path); //Will not work. WebException
my_downloader.DownloadFile("[URL HERE]", @path); //Works.
我不得不使用路徑前面的「@」來讓它工作。網上搜索的一點點讓我用「逐字串文字」撓我的腦袋。我搜索了一下,但仍然讓我撓了撓頭。我做了這個例子:
string test_1 = "C:\\Test";
Console.WriteLine(@test_1); //Print C:\Test
Console.WriteLine(test_1); //Print C:\Test
有人可以解釋這個嗎?謝謝!
你的webclient給出了什麼例外? – 2014-12-07 02:50:56
你的例子沒有意義。在C#中兩個完全不同的方式使用'@'字符。如果它在_string literal_之前(即在一對雙引號之間寫入一些文本),那麼它指定一個「逐字串」,就像你發現的那樣。這將關閉反斜槓轉義,並且對指定文件路徑很有用。如果它在一個標識符之前,就像在你的'@ path'和'@ test_1'例子中那樣,它只是讓你在你的程序中使用保留字的一種方式。例如。你可以命名一個變量'@ for',即使'for'不允許。 – 2014-12-07 02:57:12
它只是說WebException是未處理的。 – 2014-12-07 02:59:00