如何使用 MemoryStream 选择路径

how to pick path with MemoryStream

我有以下代码:

using (Stream responseStream = reply.GetResponseStream())
{
    //Do not close the stream, this creates an error when saving a JPEG file
    MemoryStream memoryStream = new MemoryStream();

    byte[] buffer = new byte[4096];
    int bytesRead;
    do
    {
        bytesRead = responseStream.Read(buffer, 0, buffer.Length);
        memoryStream.Write(buffer, 0, bytesRead);
    } while (bytesRead != 0);
}

当我在控制台应用程序中使用它时,文件自动保存到 bin 文件夹中。现在我在 Web 应用程序中使用它 - 它根本没有保存。 我怎样才能给 MemoryStream 一个特定的路径,以便它保存在那里,例如:"c:\file.jpg"?

我假设 replyHttpWebResponse 的一个实例(通过 HttpWebRequest)。

无论如何,.NET 4 附带 Stream.CopyTo,它简化了从一个流复制到另一个流的过程,您无需使用自己的缓冲区手动完成。

像这样:

using( Stream responseStream = reply.GetResponseStream() )
using( Stream fileStream = new FileStream( @"C:\whatever\foo.bin", FileMode.CreateNew ) ) {
    responseStream.CopyTo( fileStream );
}

就是这样。