在我的应用程序中,有一个类可以与PdfSharp一起使用来生成一些PDF报告。我将输出文件夹指定为带有逐字的字符串
string file_path = @"D:IntranetStudentsDailyMarks";
还有一个StringBuilder,它根据一些ID和日期时间生成文件名:
... sb.Append(document.Type); sb.Append(document.Id); sb.Append(DateTime.Now.ToShortString());
最后我做以下事情
file_path + sb.toString();
但是我的应用程序是一个例外。调试会话后,我看到实际上我的file_path是
file_path = "D:\Intranet\Students\DailyMarks\...";
据我了解,它发生在原始文件与 StringBuilder 的 toString() 调用连接之后。我试图用这样的东西替换file_path字符串:
file_path = file_path.Replace(@"\",@"");
但它不起作用。我哪里做错了?
这可能是由 DateTime.Now.ToShortString()
方法引起的,该方法将禁止的字符添加到路径 ( :
)。
这完全没问题。
"D:\Intranet\Students\DailyMarks\..." == @"D:IntranetStudentsDailyMarks..."
在常规字符串中,您需要转义斜杠,在逐字记录中,它是自动完成的
我今天遇到的另一个类似情况是发送日语":"(冒号,里面有整个)作为文件名的元素,它起作用了。我想知道,为什么俄罗斯冒号叫例外,而日本人不叫。 非常有趣。