C# を使用してファイルを(ストリームから)ディスクに保存する [重複] 質問する

C# を使用してファイルを(ストリームから)ディスクに保存する [重複] 質問する

重複の可能性あり:
ストリームをファイルに保存するにはどうすればよいですか?

画像またはファイル (msword、pdf) である可能性のあるストリーム オブジェクトを取得しました。最適化、圧縮、サイズ変更、サムネイルの作成などを行う可能性があるため、両方のタイプをまったく異なる方法で処理することにしました。画像をディスクに保存するための特定のメソッドを呼び出します。コード:

var file = StreamObject;

//if content-type == jpeg, png, bmp do...
    Image _image = Image.FromStream(file);
    _image.Save(path);

//if pdf, word do...

実際にWordやPDFを保存するにはどうすればいいですか?

//multimedia/ video?

探しましたが(おそらく十分ではなかったのでしょうが)、どこにも見つかりませんでした...

ベストアンサー1

.NET 4.0 以降を使用している場合は、次の方法を使用できます。

public static void CopyStream(Stream input, Stream output)
{
    input.CopyTo(output);
}

そうでない場合は、こちらを使用してください:

public static void CopyStream(Stream input, Stream output)
{
    byte[] buffer = new byte[8 * 1024];
    int len;
    while ( (len = input.Read(buffer, 0, buffer.Length)) > 0)
    {
        output.Write(buffer, 0, len);
    }    
}

使い方は次のとおりです。

using (FileStream output = File.OpenWrite(path))
{
    CopyStream(input, output);
}

おすすめ記事