我有一个c#程序的字符串,我想写一个文件,总是覆盖现有的内容。如果文件不存在,程序应该创建一个新文件,而不是抛出异常。
当前回答
System.IO.File.WriteAllText (@"D:\path.txt", contents);
如果文件存在,这将覆盖它。 如果文件不存在,则创建该文件。 请确保您拥有在该位置写入的适当权限,否则将会出现异常。
其他回答
使用文件。WriteAllText方法。如果文件不存在,则创建该文件;如果文件存在,则覆盖该文件。
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
一般来说,FileMode。创造是你所追求的。
推荐文章
- 防止在ASP中缓存。NET MVC中使用属性的特定操作
- 转换为值类型'Int32'失败,因为物化值为空
- c#中有任何连接字符串解析器吗?
- 谁能举一个余弦相似度的例子,用一个简单的图形化的方法?
- 在Linq中转换int到字符串到实体的问题
- 是否可以动态编译和执行c#代码片段?
- 创建自定义MSBuild任务时,如何从c#代码获取当前项目目录?
- c#和Java的主要区别是什么?
- 在c#中创建一个特定时区的DateTime
- .NET中的属性是什么?
- csproj文件中的“Service Include”是干什么用的?
- 如何使用try catch进行异常处理是最佳实践
- 替换字符串中第一次出现的模式
- .NET中字节的字面后缀?
- 如何删除文件中的特定行?