4

既存の出力ファイルを上書きせずにStreamCopyToメソッドを使用するにはどうすればよいですか?

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メソッドを使用する前に出力ファイルの位置を設定する必要がありますか?

4

3 に答える 3

7

OpenWrite使用Openして渡す代わりにFileMode.Append

using (var output = File.Open(outputFile, FileMode.Append))

これにより、出力がファイルの最後に追加されます。

于 2012-05-14T08:40:00.813 に答える
2

データを追加する場合は、次のようなものを使用します。

using (var output = new FileStream(outputFile, FileMode.Append, FileAccess.Write, FileShare.Write))
{

または

using (var output = File.Open(outputFile, FileMode.Append))
{

Odedによって提案されたように。

于 2012-05-14T08:38:55.043 に答える
-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();
于 2012-05-14T08:40:31.517 に答える