使用 Stream CopyTo() 而不覆盖现有输出文件
本文关键字:覆盖 输出 文件 Stream CopyTo 使用 | 更新日期: 2023-09-27 18:34:00
如何使用 Stream CopyTo 方法而不覆盖现有的输出文件?
public void MergeAndDeleteFiles(string outputFile, IEnumerable<string> inputFiles)
{
using (var output = File.OpenWrite(outputFile))
{
foreach (var inputFile in inputFiles)
{
using (var input = File.OpenRead(inputFile))
{
input.CopyTo(output);
}
}
}
}
上述方法出于某种原因覆盖了输出文件?在使用 CopyTo 方法之前,是否需要设置输出文件的位置?
而不是OpenWrite
使用Open
并传入FileMode.Append
:
using (var output = File.Open(outputFile, FileMode.Append))
这会将输出追加到文件末尾。
如果要
追加数据,请使用如下所示的内容:
using (var output = new FileStream(outputFile, FileMode.Append, FileAccess.Write, FileShare.Write))
{
或
using (var output = File.Open(outputFile, FileMode.Append))
{
正如奥德所建议的那样。
使用 StreamWriter 写入文本文件:
// create a writer and open the file
TextWriter tw = new StreamWriter("date.txt");
// write a line of text to the file
tw.WriteLine(DateTime.Now);
// close the stream
tw.Close();