gzip으로 압축 된 파일을 다운로드하고 압축을 푸는 코드가 있습니다. 문제는 전체 파일의 압축을 풀 수 없으며 첫 번째 4096 바이트 만 읽은 다음 약 500 개만 읽습니다.GZipStream 전체 파일을 읽을 수 없습니다.
Byte[] buffer = new Byte[4096];
int count = 0;
FileStream fileInput = new FileStream("input.gzip", FileMode.Open, FileAccess.Read, FileShare.Read);
FileStream fileOutput = new FileStream("output.dat", FileMode.Create, FileAccess.Write, FileShare.None);
GZipStream gzipStream = new GZipStream(fileInput, CompressionMode.Decompress, true);
// Read from gzip steam
while ((count = gzipStream.Read(buffer, 0, buffer.Length)) > 0)
{
// Write to output file
fileOutput.Write(buffer, 0, count);
}
// Close the streams
...
다운로드 한 파일을 확인했습니다. 압축시 13MB이고 하나의 XML 파일을 포함합니다. XML 파일의 압축을 수동으로 풀었습니다. 내용이 모두 있습니다. 그러나이 코드를 사용하면 XML 파일의 시작 부분 만 출력됩니다.
누구에게 이런 일이 일어날 수있는 아이디어가 있습니까?
를 사용할 수 있습니다. 그러나, 나는 작업 코드를 살펴 봤는데, 결국'using '블록으로 싸여진 것 이외의 것으로 보인다. –
Flush() 메서드를 호출하고 있습니까? – n535
Flush()로 시도했지만 도움이되지 않았습니다. – Edgar