我有一个包含C#程序的字符串,我希望将其写入文件并始终覆盖现有内容。如果文件不在那里,程序应该创建一个新文件,而不是抛出异常。
发布于 2009-08-04 05:59:18
使用File.WriteAllText
方法。如果文件不存在,则创建该文件,如果存在,则覆盖该文件。
发布于 2009-08-04 07:01:59
通常,FileMode.Create
就是您要查找的内容。
发布于 2021-08-03 17:18:26
使用文件模式枚举更改File.Open
行为。这对二进制内容和文本都有效。
由于FileMode.Open
和FileMode.OpenOrCreate
会将现有内容加载到文件流中,因此如果要完全替换文件,则需要先清除现有内容,然后才能将其写入到流中。FileMode.Truncate
会自动执行此步骤
// OriginalFile:
oooooooooooooooooooooooooooooo
// NewFile:
----------------
// Write to file stream with FileMode.Open:
----------------oooooooooooooo
var exists = File.Exists(path);
var fileMode = exists
? FileMode.Truncate // overwrites all of the content of an existing file
: FileMode.CreateNew // creates a new file
using (var destinationStream = File.Open(path, fileMode)
{
await newContentStream.CopyToAsync(destinationStream);
}
https://stackoverflow.com/questions/1225857
复制相似问题