0

ストリーム (通常は大きなストリーム) を送信する wcf サービスがあります。クライアント アプリケーションとしての私の役割は、WCF 経由でストリームを取得し、それをディスクに保存することです。私はいくつかのコードを書きましたが、最初にストリームをRAMに取得し、RAMからディスクに書き込むようです。RAMを巨大なファイルでいっぱいにせずに、ストリームを安全に取得してディスクに直接書き込みたいです。これを行う良い方法は何ですか?これが私が今までやったことです:

Stream sourceStream = SsClient.GetFile(FolderId, Helper.GetISession());
using (var targetStream = new FileStream(thisComputerPath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None))
{
    //read from the input stream in 65000 byte chunks
    const int bufferLen = 65000;
    var buffer = new byte[bufferLen];
    int count;
    while ((count = sourceStream.Read(buffer, 0, bufferLen)) > 0)
    {
        // save to output stream
        targetStream.Write(buffer, 0, count);
    }
    targetStream.Close();
    sourceStream.Close();
}

私の問題を十分に明確に説明できれば幸いです。ところで私の英語ですみません。

バッファリングの目的などでRAMを使用してもかまいません。2GBのRAMしかない場合、クライアントのコンピューターに苦労するため、毎回1〜2GBのストリームでいっぱいになりたくないだけです。 .

4

1 に答える 1

0

以下の投稿はチェックしましたか?

ストリームを保存する方法

大きなストリームをファイルに書き込む

これらの実装に関するクエリがある場合はお知らせください。

于 2013-05-05T12:34:01.337 に答える