字符串中的Windows文件路径与转义字符混淆

时间:2015-07-11 22:49:06

标签: c# string unity3d escaping

如果没有Unity认为\是转义字符,我如何保存到Windows路径?我收到这样的错误:Assets / _Scripts / CaptureSaveScreenshot.cs(50,93):错误CS1009:无法识别的转义序列`\ k'

public void GrabIt(string capturePath)
{   
    string dtString = System.DateTime.Now.ToString("yyyyMMddHHmmssfff");

    if(width > 0 && height > 0)
    {
        if (Application.platform == RuntimePlatform.WindowsWebPlayer)
            snapShot.CaptureAndSaveAtPath(x, y, width, height, "C:\Users\kenmarold\Screenshots\screenshot_"+dtString+".png");   // Save to Windows

        if (Application.platform == RuntimePlatform.OSXWebPlayer)
            snapShot.CaptureAndSaveAtPath(x, y, width, height, "/Users/kenmarold/Screenshots/screenshot_"+dtString+".png");     // Save to Mac

2 个答案:

答案 0 :(得分:2)

在路径字符串中使用\\,因此会将其视为\

喜欢

"C:\\Users\\kenmarold\\Screenshots\\screenshot_"+dtString+".png"

详细了解Escape Sequences in C#

或者您可以使用Verbatim String代替Escape Sequence。

拇指向上,如果它有用。

答案 1 :(得分:1)

在字符串前面使用@符号,如下所示:

 snapShot.CaptureAndSaveAtPath(x, y, width, height, 
             @"C:\Users\kenmarold\Screenshots\screenshot_"+
             dtString + ".png");   // Save to Windows

告诉编译器将字符串中的所有内容视为文字,并且不要求您转义所有内容。使用文件路径时这很好。