我有以下代码:
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"
?
最佳答案
我假设 reply
是 HttpWebResponse
的一个实例(通过 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/