我有一个c#程序的字符串,我想写一个文件,总是覆盖现有的内容。如果文件不存在,程序应该创建一个新文件,而不是抛出异常。
System.IO.File.WriteAllText (@"D:\path.txt", contents);
如果文件存在,这将覆盖它。 如果文件不存在,则创建该文件。 请确保您拥有在该位置写入的适当权限,否则将会出现异常。
如果您的代码不要求首先截断文件,您可以使用FileMode。OpenOrCreate打开文件流,如果文件不存在将创建文件,如果文件存在则打开文件。您可以使用流指向前面并开始覆盖现有文件?
我假设这里用的是流,还有其他方法来写文件。
使用文件模式enum来更改文件。开放的行为。这既适用于二进制内容,也适用于文本。
因为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);
}
FileMode Enum
推荐文章
- OpenGL 4.1版本的文本渲染技术是怎样的?
- 如何获取正在执行的程序集版本?
- AutoMapper vs valueinjector
- 为什么控制台不。Writeline,控制台。在Visual Studio Express中编写工作?
- 如何将文件指针(file * fp)转换为文件描述符(int fd)?
- 什么是.NET程序集?
- 字符串不能识别为有效的日期时间“格式dd/MM/yyyy”
- 函数应该返回空对象还是空对象?
- 如何转换日期时间?将日期时间
- 如何在c#中连接列表?
- 在c#中引用类型变量的“ref”的用途是什么?
- 防止在ASP中缓存。NET MVC中使用属性的特定操作
- 转换为值类型'Int32'失败,因为物化值为空
- c#中有任何连接字符串解析器吗?
- 谁能举一个余弦相似度的例子,用一个简单的图形化的方法?