【发布时间】:2012-07-14 11:56:33
【问题描述】:
我想用 COM 在 C# 中将一些数据写入 Excel,但保存时遇到问题。我们来看代码:
-
workSheet.SaveAs("c:/users/amare/sub.xls");上面的代码会报错:
“Microsoft Excel 无法打开文件 c://users/amare/sub.xls。”
但下面的代码可以正常工作:
workSheet.SaveAs("c:\\users/amare/sub.xls");workSheet.SaveAs(@"c:\users\amare\sub.xls");
现在我对这种情况感到很困惑。我知道 2) 和 3) 是绝对正确的,但我习惯于编写类似 1) 的代码:
StreamWriter sw = new StreamWriter("c:/users/amare/desktop/file.txt");
sw.WriteLine("foo-bar");
sw.close();
这总是很好。所以我想知道为什么这次没有。显然 C# 在 1) 中错误地转义了路径。
【问题讨论】:
-
"c:/users" 不是有效的 Windows 路径。
-
如果从运行中触发此路径“c:/users”,它可以工作,因此它是有效路径
-
当正斜杠用于本地路径时,我个人讨厌它。本地路径 - 反斜杠。 Web 路径 - 正斜杠。
-
@HatSoft -
WorkSheet.SaveAs()在这一点上不同意你的观点。它在这里有硬道理。 -
不是你要求的,但也许你想在处理文件路径时考虑使用 System.IO.Path 类。