【发布时间】:2010-11-12 08:26:55
【问题描述】:
我正在使用 StreamWriter 对象写入由构造函数创建或已经存在的文件。如果文件存在,那么它会附加数据。如果没有,那么它应该创建一个文件,然后还附加数据。问题是,当需要创建文件时,StreamWriter 构造函数创建文件但没有向文件写入任何数据。
bool fileExists = File.Exists(filePath);
using (StreamWriter writer = new StreamWriter(filePath, true))
{
if (!fileExists)
{
writer.WriteLine("start");
}
writer.WriteLine("data");
}
编辑: 感谢您的回答。 using 块负责关闭编写器。至于其他人说它对他们有用,我可以给你任何信息来进一步诊断问题吗?该文件通过网络本地化。这可能是一个潜在的问题。我间歇性地收到错误消息,“找不到路径的一部分......”和“指定的网络名称不再可用。”
【问题讨论】:
-
您的代码在我的机器上运行良好。
-
对我也有用...@Dan,再试一次并检查一下,也许你在第一次运行时错过了什么? using 语句应该负责关闭和刷新...
-
您上面的代码 sn-p 对我来说是一种享受,您确定其他东西没有干扰文件吗?
-
我再次检查了我的代码,仍然没有发现任何异常。所有这一切的奇怪之处在于,如果文件存在,它将起作用。我将收到一个内容为“数据数据数据”的文件。但它从不在初始调用中附加任何内容。
-
这段代码是否有可能包装在 try...catch 块中,而在 catch 语句中没有错误处理?
标签: c# file-io streamwriter