c# - 如何使用 MemoryStream 选择路径

标签 c# asp.net 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 文件夹中。现在我在网络应用程序中使用它 - 并且它根本没有保存。 如何为 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 );
}

就是这样。

关于c# - 如何使用 MemoryStream 选择路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35358710/

相关文章:

c# - 我们可以在c#的方法中同时使用virtual和new关键字吗?

c# - 如果特定应用程序打开和关闭,如何触发启动我的 Windows 服务应用程序?

c# - SSH.NET 是否只接受 OpenSSH 格式的私钥?如果没有,有什么限制?

c# - Matlab 和 C# 之间的互操作

c# - 获取文本文件中行数的估计值

c# - 在数据库内部排序还是在代码后面排序?哪个最好?

javascript - 如何使用在 Asp.net C# 中创建的 javascript 读取 cookie 值

c# - IE7 中由 JavaScript 和图像引起的混合内容警告

c# - BinaryFormatter 与 MemoryStream 问题

c# - 来自 MemoryStream 的 GZipStream 只返回几百个字节