C# 路径中的反斜杠

C# 路径中的反斜杠,c#,C#,我目前在我的软件中有一个bug,它只能在客户端重现。 我使用的是Windows 10(1805),我的客户使用的是Windows Server 2016(标准) 问题是,当您使用对话框设置图像路径时,它似乎以错误的格式保存,但我不确定 // Snap (capture) an image to the memory string path = IMGPath + "\\" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".jpeg"; IMG

我目前在我的软件中有一个bug,它只能在客户端重现。 我使用的是Windows 10(1805),我的客户使用的是Windows Server 2016(标准)

问题是,当您使用对话框设置图像路径时,它似乎以错误的格式保存,但我不确定

// Snap (capture) an image to the memory
string path = IMGPath + "\\" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".jpeg";
IMGPath是通过Windows文件对话框提供的,该对话框被正确地传输,但我无法在客户的计算机上调试

在上面的代码之前,我使用了“/”,这可能会导致图像保存功能找不到正确的路径。但奇怪的是,在我自己的机器Win10上,它没有任何负面影响,图像保存在正确的文件夹中

问题:这是否可能导致Windows Server 2016出现问题

提前感谢:)

更新: 最后它成功了,但问题是我混淆了斜杠和反斜杠。Windows 10会自动更正此错误,但Windows Server 2016不会。

如果您使用而不是执行自己的字符串连接,将减少此处出现错误的可能性

var path = Path.Combine(IMGPath, $"{DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss")}.jpeg");

DateTime.Now.ToString(“yyyy\u MM\u dd\u HH\u MM\u ss”)
可能正在使用客户端区域性/时区

请尝试使用
var date1=DateTime.Now.ToString(CultureInfo.InvariantCulture)

并注意时区问题

您可以使用
Path.combined
方法。它将字符串数组合并到一个路径中

string[] paths = {IMGPath, "\\", DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss"), ".jpeg"};
string fullPath = Path.Combine(paths);
Console.WriteLine(fullPath);

您是否尝试过路径。组合路径?不要尝试自己创建路径,请使用已有的路径。请向我们展示更多上下文代码。如果我们可以看到整个代码块,我们可以帮助您更多。“保存格式错误”-您的意思是图像保存到了正确的文件,但格式不正确吗?如果是这样,请显示您保存图像的位置。
但我无法在客户计算机上调试
与问题无关,但在将来,将错误写入日志文件,客户可以使用文件名中的
ToString(CultureInfo.InvariantCulture)
将其发送给您:空格、冒号在windows上是禁止的。。。如果您想处理时区,最好使用
DateTime.UtcNow
。此外,没有此格式的区域性,它不使用ddd、MMM等(但时区影响是)