2011-11-10 2 views
1

이것은 기존 우편 번호를 업데이트하는 코드이며 발신자는 ZipFile을 전달하고 zip 파일을 닫는 finally 블록이 있습니다.SharpZipLib을 사용하여 우편 번호 업데이트 - 항목 이름에 폴더가 포함 된 경우 문제가 있음

private static void AddFiles(ZipFile zipFile, string path, string filesEntryLocation, string pattern = @"*") { 

     zipFile.BeginUpdate(); 

     string[] files = Directory.GetFiles(path, pattern); 

     foreach (string filename in files) { 
      zipFile.Add(filename, (filesEntryLocation + filename.Split(new[] { '\\' }).Last()).Replace('\\','/')); 
     } 



     zipFile.CommitUpdate(); 
    } 

제가 알기로는 zip에 항목을 추가하고 zip 폴더 계층의 특정 부분에 entryname을 설정합니다.

프레임 워크는 느슨하게 결합 된 제품을 지원하는 '프레임 워크'웹 패키지에 제품을 삽입하기 위해이 작업을 수행하고 있습니다.

결과 zip이 좋으며 Windows에서 탐색 할 수 있으므로 추출 할 수 있습니다 ... 그러나 MSDeploy가 나오고 새 항목이 zip 폴더 계층 구조에 추가 된 위치가 어디인지, msdeploy에서 오류가 발생합니다 zip을 열 수는 없지만 zip이 완전히 손상되지 않은 경우에만 msdeploy가 '새'폴더를 탐색하기 시작합니다.

이제는 변경된 zip을 추출한 다음 7zip을 사용하여 다시 압축 한 다음 msdeploy에 실행하도록 요청합니다. 아무 문제없이 작동합니다.

SO -이 SharpZipLib입니까, 아니면 Zip 폴더 계층 구조를 추가하는 데 문제가 있습니까?

답변

0

또한 보관할 폴더 항목을 추가해야합니다 (이전에 존재하지 않은 경우).