[C#]文件路径中的逐字字符串文字?

时间:2014-12-07 02:47:42

标签: c# string stream webclient literals

我需要帮助。通常如果我使用OpenFileDialog,我通常会在FileName属性上给出类似的东西:

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,这将直接工作。即:

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.

我被迫使用" @"在路径前面,以使其工作。在网上搜索一点点让我抓住了#34; Verbatim String Literal"。我用Google搜索了一下,但它仍然让我挠头。我做了这个例子:

    string test_1 = "C:\\Test";
    Console.WriteLine(@test_1);      //Print C:\Test
    Console.WriteLine(test_1);       //Print C:\Test

有人可以解释一下吗?谢谢!

1 个答案:

答案 0 :(得分:0)

WebClient.DownloadFile(Uri address, string fileName)实际上只是在内部调用以下内容

fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);

所有推理与

的例子相同
FileStream my_fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);

似乎异常根本与fileName无关,而且必须是其他的