路径中的C#反斜杠

时间:2018-07-12 15:21:54

标签: c#

我目前在软件中存在一个错误,该错误只能在客户端重现。 我使用的是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 FileDialog Box给出的,但我无法在客户计算机上调试。

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

问题:这可能会导致Windows Server 2016出现问题吗?

提前感谢:)

更新: 终于成功了,但问题是我混用了斜杠和反斜杠。 Windows 10会自动更正此问题,但Windows Server 2016不会。

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您可以使用Path.Combine方法。将字符串数组组合到路径中。

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

答案 2 :(得分:0)

DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss")可能正在使用“客户文化” /“时区”

请尝试使用var date1 = DateTime.Now.ToString(CultureInfo.InvariantCulture); 并注意TimeZone问题。