如何使用 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"
?
我假设 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 );
}
就是这样。
我有以下代码:
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"
?
我假设 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 );
}
就是这样。