3

在我的应用程序中,有一个类可以与PdfSharp一起生成一些 PDF 报告。我将输出文件夹指定为逐字字符串

string file_path = @"D:\Intranet\Students\DailyMarks\";

还有一个 StringBuilder 可以根据一些 ID 和 DateTime 生成文件名:

... 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(@"\\",@"\");

但它不起作用。我哪里做错了?

4

3 回答 3

4

这可能是由DateTime.Now.ToShortString()向路径 ( ) 添加禁止字符的方法引起的:

于 2016-04-24T22:53:39.900 回答
3

完全没问题。

"D:\\Intranet\\Students\\DailyMarks\\..." == @"D:\Intranet\Students\DailyMarks\..."

在常规字符串中,您需要转义斜杠,逐字逐句自动完成

于 2016-04-24T22:34:57.373 回答
0

我今天遇到的另一个类似情况是发送日文「:」(里面有整个冒号)作为文件名的元素,它起作用了。我想知道,为什么俄罗斯冒号称异常,而日本则没有。很有意思。

于 2016-05-20T11:11:24.180 回答