2014-11-12 8 views
0

이것은 게시물에서의 첫 번째 시도이므로 중요한 세부 정보를 생략하면 죄송합니다.SharpZipLib을 사용하여 XML 파일의 압축을 풀면 끝에 행이 추가됩니다 (가끔만 사용)

저는 회사에 압축 파일을 컴퓨터에 다운로드 한 다음 zip 파일이있는 폴더에 압축을 해제하는 프로그램이 있습니다. 압축 파일에는 여러 가지 유형의 파일이 있습니다 (exe, dll, xml).) 그리고 모두 압축을 풉니 다. 그러나 때로는 (항상은 아님) xml 파일에 줄이 추가되었습니다.

xml 파일의 맨 끝에는 파일의 앞부분에서 반복되는 줄이 있으며 끝까지 실행되는 것처럼 보입니다 파일의 죄송합니다, 여기서는, 설명하는 최신의 예를 조금 어렵다입니다 :

파일의 마지막 부분이었다

닫는 요소 "</루트>"즉시 나중에 추가 "OOT>"

는 가끔 있었다 반복되는 줄의 양은 더 크지 만 항상 파일의 끝 부분에서 끝 부분까지가는 것처럼 보입니다. 파일이 압축 해제되어

> 압축 폴더 ->로 보내 - 파일 그냥 일반 오른쪽 클릭하면을 사용하여 압축하는 것이 :

MyFileStream = New FileStream(ExtractDir & "\" & _ 
     MyZipEntry.Name, FileMode.OpenOrCreate, FileAccess.Write) 
    Dim count As Integer 
    Dim buffer(4096) As Byte 
    count = MyZipInputStream.Read(buffer, 0, 4096) 
    While count > 0 
     MyFileStream.Write(buffer, 0, count) 
     count = MyZipInputStream.Read(buffer, 0, 4096) 
    End While 
    MyFileStream.Close() 
    End If 

참고 : 여기에

은 파일 압축을 풀고 그 코드의 조각 SharpZipLib

사용이 잘 모르겠어요하고 테스트 할 수없는 나는, 모든 텍스트 파일을 발생할 수 있습니다 만 XML을 볼

파일을 압축 해제하는 더 좋은 방법을 찾고 있지 않습니다. (이 코드는 특별히 작성한 코드가 아니며 다른 방법이 없으면 파일을 변경하지 않으려합니다.) 추가 선이 추가되는 방법. 앞서 언급했듯이이 문제는 일부 경우에만 발생하며 다른 경우 xml 파일이 제대로 출력됩니다. 동일한 파일을 다른 컴퓨터에 다운로드하여 다르게 출력 할 수 있습니다.

내가 어떤 대답을 주셔서 감사합니다, 당신은 XML을 압축 해제하면 비어있는 새 파일을 작성해야합니다 날이

+0

xml을 압축 해제하면 새 빈 파일을 만들거나 현재있는 파일을 수정합니까? OpenOrCreate를 사용하면 새 파일이 작 으면 이전 파일의 일부가 남아있을 수 있습니다. –

+0

파일은 일반적으로 이미 존재합니다. 귀하의 답변이 우리에게 일어나는 일을 정확하게 설명하고 있음을 확신합니다. 실제로 테스트 할 수 있기까지는 약간의 시간이 걸릴 것입니다. 코드를 변경할 수있는 권한을 얻어야합니다. 그러나 이전 파일을 완전히 덮어 쓰고 싶습니다. FileMode.OpenOrCreate를 FileMode.Create로 변경해야합니다. – AaronTheRabbit

+0

다른 옵션은 파일을 삭제하는 것입니다. 프로그램을 호출하기 전에 하나씩 작성하거나 전체 폴더를 삭제하기 전에 삭제할 수 있습니다. –

답변

0

을 이해하는 데 도움이됩니다. 이미 존재하는 파일을 수정하면 OpenOrCreate를 사용하여 새 파일이 더 작 으면이 문제가 발생합니다. 그러면 이전 파일의 일부가 생성됩니다.

다른 옵션은 파일을 삭제하는 것입니다. 프로그램을 호출하기 전에 하나씩 작성하거나 전체 폴더를 삭제하기 전에 삭제할 수 있습니다.

+1

대단히 감사합니다. 내가 요청한 내용과 신속한 대응에 너무 빠릅니다. – AaronTheRabbit