如何在不覆盖现有输出文件的情况下使用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);
}
}
}
}
上面的方法由于某种原因覆盖了outputFile?我需要在使用CopyTo方法之前设置输出文件的位置吗?
答案 0 :(得分:6)
而不是OpenWrite
使用Open
并传入FileMode.Append
:
using (var output = File.Open(outputFile, FileMode.Append))
这会将输出附加到文件的末尾。
答案 1 :(得分:2)
如果要附加数据,请使用以下内容:
using (var output = new FileStream(outputFile, FileMode.Append, FileAccess.Write, FileShare.Write))
{
或者
using (var output = File.Open(outputFile, FileMode.Append))
{
答案 2 :(得分:-1)
使用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();