応答としてPDFファイルを返すhttpwebrequestにアクセスしています。私はその応答をメモリストリームに読み込んでおり、後でファイルに変換しています。問題は、何百ものファイルが作成されていることです。理由はわかりませんが、私は多くの方法を試しましたが、すべて同じです...これはメモリストリームを返す最初のメソッドです。
MemoryStream memStream = new MemoryStream();
byte[] buffer = new byte[2048];
int bytesRead = 0;
do
{
bytesRead = _ResponseStream.Read(buffer, 0, buffer.Length);
memStream.Write(buffer, 0, bytesRead);
} while (bytesRead != 0);
FileStreamに変換する2番目...
byte[] data = stream.ToArray();
FileStream fs = new FileStream(newFile, FileMode.CreateNew);
fs.Write(data, 0, data.Length);
何か案は?
編集してコードを追加...
public MemoryStream GetToStream()
{
if (_Req == null)
throw new Exception("HttpWebRequest is not initialised");
GetResult(_Req);
MemoryStream memStream = new MemoryStream();
byte[] buffer = new byte[2048];
int bytesRead = 0;
do
{
bytesRead = _ResponseStream.Read(buffer, 0, buffer.Length);
memStream.Write(buffer, 0, bytesRead);
} while (bytesRead != 0);
_ResponseStream.Close();
if (memStream.Length > 0)
return memStream;
else return null;
}
newFileは、作成するファイルのサーバーへのマップされたパスです。
byte[] data = stream.ToArray();
FileStream fs = new FileStream(newFile, FileMode.Create);
fs.Write(data, 0, data.Length);
fs.Close();
stream.WriteTo(fs)を試しましたが、同じことが起こります。かなり奇妙です。