2014-06-05 4 views
1

저는 미니보고 엔진을위한 면도기 템플릿으로 ODT 파일의 특정 섹션을 처리하기 위해 라이브러리 작업을하고 있습니다. odt를 압축 해제하고 content.xml을 수정하여 올바른 결과를 얻었지만 Rezzip 파일을 열면 LibreOffice에서 "일반 I/O 오류"가 발생합니다.C#에서 ODT 파일을 다시 압축하여 읽을 수있게 만드는 방법은 무엇입니까?

현재 C#의 ZipFile.CreateFromDirectory() 메소드를 사용하여 zip 파일을 만듭니다. 파일을 압축하는면에서 특별한 것을해야합니까, 아니면 내 실수가 다른 곳에서있을 가능성이 더 큽니까?

분명히 mimetype 파일을 먼저 확인하려고했습니다. 파일 그룹을 압축하지 않고 단일 zip 아카이브로 처리하면 (compressionlevel.none) 작동하지 않아 동일한 오류가 발생합니다. mimetype 파일이 아카이브의 첫 번째 파일이어야하기 때문일 수도 있습니다. 이것이 정말로 문제이며, 더 잘할 수 있습니까?

+0

[관련] (http://stackoverflow.com/q/4957212/1997232). – Sinatr

+0

mimetype 파일을 압축하는 것이 문제가 될지 궁금했지만 필자가 접촉 한 사람들은 파일을 다시 압축 한 후 파일을 읽는 데 문제가 없다고 대답했습니다. 7-zip. 이로 인해이 문제는 다른 곳에 있다고 믿게되었습니다. 고맙습니다. 매우 유용하지만, C#으로 파일을 적절히 압축하는 방법을 알아 내려고하고 있습니다. – Paladin852

+0

나는 파일을 전혀 압축하지 않고 아무런 소용이 없다는 점에 더 주목하고 싶다. 응답이 분명히 적절하지 않기 때문에 링크 된 질문에 대한 의견을 많이 전할 수는 없습니다. 나는이 문제를 계속 연구하고 있지만 진전이 없다. – Paladin852

답변

0

두 개의 다른 zip 라이브러리를 사용하여 끝났습니다. DotNetZip의 ZipOutputStream을 사용하면 먼저 mimefile을 지정하고 압축을 해제 할 수있었습니다. 그런 다음 ZipFile 클래스를 사용하여 필요한 폴더와 내용을 추가했습니다. 나는 DotNetZip의 Extract() 메서드에 문제가있어서 실제로 파일을 압축 해제하기 위해 .net의 압축 라이브러리를 사용하고 DotNetZip을 사용하여 백업을 압축합니다.

아직도 더 나은 방법을 찾고 있지만 지금은 효과가 있습니다.