C# でストリームをファイルに保存するにはどうすればいいですか? 質問する

C# でストリームをファイルに保存するにはどうすればいいですか? 質問する

StreamReaderストリームで初期化したオブジェクトがあり、このストリームをディスクに保存したいと考えています (ストリームは.gifまたは.jpgまたは です.pdf)。

既存のコード:

StreamReader sr = new StreamReader(myOtherObject.InputStream);
  1. これをディスクに保存する必要があります (ファイル名はわかっています)。
  2. 将来的にはこれを SQL Server に保存したいと思うかもしれません。

エンコード タイプも持っていますが、これを SQL Server に保存する場合に必要になりますか?

ベストアンサー1

Jon Skeet の回答で Tilendor が強調したように、ストリームにはCopyTo.NET 4 以降のメソッドがあります。

var fileStream = File.Create("C:\\Path\\To\\File");
myOtherObject.InputStream.Seek(0, SeekOrigin.Begin);
myOtherObject.InputStream.CopyTo(fileStream);
fileStream.Close();

または、using次の構文を使用します。

using (var fileStream = File.Create("C:\\Path\\To\\File"))
{
    myOtherObject.InputStream.Seek(0, SeekOrigin.Begin);
    myOtherObject.InputStream.CopyTo(fileStream);
}

Seekまだ先頭にいない場合は、を呼び出す必要があります。そうしないと、ストリーム全体がコピーされません。

おすすめ記事