0

System.NET.FtpWebRequest を使用して、GZip を使用して圧縮された xml ファイルをダウンロードしています。

私が受け取るファイルは、サーバー上のファイルの約 2 倍のサイズであり、System.IO.Compression.GZipStream はそれらを好みません。次のエラー メッセージが返されます。

System.IO.InvalidDataException : 
The magic number in GZip header is not correct. 
Make sure you are passing in a GZip stream.

GZip の Web サイトは、多くの問題がバイナリ ファイルを ASCII としてダウンロードすることによって引き起こされることを示唆しています。ただし、FtpWebRequest で UseBinary を true に設定しても false に設定しても同じ問題が発生します。

私の解凍コードは、FileZilla で手動でダウンロードしたファイルに対して正常に動作します。

いつものように、あなたの助けは大歓迎です。

4

1 に答える 1

0

私の悪い。問題は、ストリームをディスクに保存する方法にあります。FtpWebRequest や GZip ではまったく問題ありません。StreamWriter をテキスト ファイルに使用していました (その部分を継承しました)。FtpResponse ストリームを FileStream に書き込むと、問題が解決します。

ご覧いただきありがとうございます。誰かの時間を無駄にしてごめんなさい。

于 2010-08-12T20:12:29.297 に答える