overwriting file with File.CreateText (C#)
本文关键字:CreateText File file with overwriting | 更新日期: 2023-09-27 18:06:36
我遇到以下问题。我正在使用。net Framework 1.1,我正在尝试使用以下代码覆盖一个文件:
try
{
using (StringWriter writer = new StringWriter())
{
Server.Execute(path, writer);
using (StreamWriter sr = File.CreateText(filepath + fileName))
{
sr.WriteLine(writer.ToString());
}
}
}
catch (Exception exc)
{
...
}
有时它工作得很好,但有时它不覆盖文件,也不会抛出异常。有人能告诉我问题可能是什么,或者如何处理为什么它不覆盖文件?
为什么不直接:
File.WriteAllText(Path.Combine(filepath, fileName), writer.ToString())
从MSDN :创建新文件,将指定的字符串写入文件,然后关闭文件。如果目标文件已经存在,它将被覆盖。
谁能告诉我可能是什么问题或如何处理为什么不覆盖文件?
好吧,回答你的实际问题,File.CreateText(string file)
的行为完全符合预期。如果filepath + fileName
(以您的示例为例)是一个已经存在的文件,它将打开该文件而不是创建它。(它不覆盖)。
您可以先使用File.Exists(string file)
检查文件是否存在,然后使用File.Delete(string file)
。
如果File.CreateText(string file)
不适合你的需要,你可以尝试不同的类型。也许是FileInfo
?
创建或打开用于写入UTF-8编码文本的文件。
来源:https://msdn.microsoft.com/en-us/library/system.io.file.createtext%28v=vs.110%29.aspx
over write也可以通过内置文件实现。复制方法。
文件。副本有过载-
File.Copy Method (Source, Destination, OverWrite)
关于msdn的更多信息