gpt4 book ai didi

c# - File.OpenWrite 附加而不是删除内容?

转载 作者:IT王子 更新时间:2023-10-29 03:50:25 24 4
gpt4 key购买 nike

我正在使用以下内容写入文件:

using(Stream FileStream = File.OpenWrite(FileName)) 
FileStream.Write(Contents, 0, Contents.Length);

我注意到它只是正确地写入文件 file,但没有先删除文件的内容。然后我决定简单地使用:

File.WriteAllBytes(FileName, Contents);

这很好用。

但是,为什么 File.OpenWrite 不像我使用的其他语言为其 OpenWrite 样式函数那样自动删除文件的内容,而是使用 a 而不是附加?

有什么方法可以做到这一点吗?

最佳答案

这是 File.OpenWrite 的指定行为:

If the file exists, it is opened for writing at the beginning. The existing file is not truncated.

要做你想做的事,只需做:

using(Stream fileStream = File.Open(FileName, FileMode.Create)) 
fileStream.Write(Contents, 0, Contents.Length);

您当前的调用等效于使用 FileMode.OpenOrCreate,它不会导致现有文件的截断。

FileMode.Create如果文件不存在,选项将导致 File 方法创建一个新文件,如果存在,则使用 FileMode.Truncate,从而为您提供所需的行为。或者,您可以使用 File.Create直接执行此操作。

关于c# - File.OpenWrite 附加而不是删除内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3653132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com