Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用file.CreateText(C#)覆盖文件_C#_File_Overwrite - Fatal编程技术网

用file.CreateText(C#)覆盖文件

用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

我遇到以下问题。我正在使用.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())
发件人: 创建新文件,将指定的字符串写入该文件,然后关闭该文件。如果目标文件已经存在,它将被覆盖。

为什么不:

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