我需要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