用file.CreateText(C#)覆盖文件
我遇到以下问题。我正在使用.NET Framework 1.1,并尝试使用以下代码覆盖文件:用file.CreateText(C#)覆盖文件,c#,file,overwrite,C#,File,Overwrite,我遇到以下问题。我正在使用.NET Framework 1.1,并尝试使用以下代码覆盖文件: try { using (StringWriter writer = new StringWriter()) { Server.Execute(path, writer); using (StreamWriter sr = File.CreateText(fi
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())
发件人:
创建新文件,将指定的字符串写入该文件,然后关闭该文件。如果目标文件已经存在,它将被覆盖。为什么不:
File.WriteAllText(Path.Combine(filepath, fileName), writer.ToString())
发件人:
创建新文件,将指定的字符串写入该文件,然后关闭该文件。如果目标文件已经存在,它将被覆盖。也可以使用内置的file.copy方法实现重写 File.copy已重载-
File.Copy Method (Source, Destination, OverWrite)
更多关于
希望这有帮助。通过内置file.copy方法也可以实现超写 File.copy已重载-
File.Copy Method (Source, Destination, OverWrite)
更多关于
希望这有帮助
有人能告诉我问题可能是什么,或者如何处理为什么
不会覆盖该文件吗
好的,为了回答您的实际问题,File.CreateText(字符串文件)
的行为完全符合预期。如果示例中的filepath+fileName
是一个已经存在的文件,它将打开该文件而不是创建它。(它不会覆盖)
您可以先使用file.exists(字符串文件)
检查文件是否存在,然后使用file.Delete(字符串文件)
如果File.CreateText(字符串文件)
不适合您的需要,您可以尝试其他类型。可能是FileInfo
微软表示:
创建或打开用于写入UTF-8编码文本的文件
资料来源:
有人能告诉我问题可能是什么,或者如何处理为什么
不会覆盖该文件吗
好的,为了回答您的实际问题,File.CreateText(字符串文件)
的行为完全符合预期。如果示例中的filepath+fileName
是一个已经存在的文件,它将打开该文件而不是创建它。(它不会覆盖)
您可以先使用file.exists(字符串文件)
检查文件是否存在,然后使用file.Delete(字符串文件)
如果File.CreateText(字符串文件)
不适合您的需要,您可以尝试其他类型。可能是FileInfo
微软表示:
创建或打开用于写入UTF-8编码文本的文件
来源:似乎有用,但我需要一些可以在.NET Framework 1.1中使用的东西。@etavt你可能应该说,我们很难假设1.1看起来有用,但我需要一些可以在.NET Framework 1.1中使用的东西。@etavt你可能应该说,我们很难假设1.1