2017-02-26 12 views
1

약간의 연구 끝에 Zip 파일에서 파일을 읽을 때 DotNetZip을 사용하기가 매우 쉽습니다. 슬프게도, 나는 사소한 문제에 부딪쳤다.DotNetZip을 사용하여 zip 파일 내의 폴더 안에있는 단일 파일을 읽는 방법?

은 내 zip 파일은 다음과 같이 설정 :

  • 탑 레이어 : 파일 자체를 압축.
  • 두 번째 계층 : zip 파일과 이름이 같은 폴더.
  • 세 번째 레이어 : 데이터 (필요한 파일 포함).

나는

using (ZipFile zip = ZipFile.Read(modPath)) 
{ 
    string[] temp1 = modPath.Split('\\'); 
    string mod = temp1[temp1.Length - 1]; 

    mod = mod.Remove(mod.Length - 6); 

    string modinfo = @mod + "/info.json"; 

    ZipEntry e = zip[modinfo]; // No entry found here 
} 

내가 여기서 뭔가를 바라 보는 건가요 항목을 발견하지, 다음 코드를 그 위에 비틀 계속 사용?

편집 : foreach 문을 사용하여 이름을 zip 파일의 내용을 통해

Inside a zip

답변

1

당신은 반복 할 수 얻을 다음 파일을 찾기 위해 루프를 추가했습니다.

  using (ZipFile zip = ZipFile.Read(modPath)) 
      { 
       ZipEntry e; 
       foreach (ZipEntry k in zip) 
       { 
        if (k.FileName.Contains("info.json")) 
        { 
         e = k; 
         break; 
        } 
       } 
      } 
+0

그 문제는 여러 개의 zip 파일 (동일한 구조)을 순환해야한다는 것입니다. 폴더 이름을 완성 할 코드 조각을 만들었지 만 동일한 결과 (항목을 찾을 수 없음)가 있습니다. –

+0

폴더의 스크린 샷을 추가 할 수 있습니까? –

+0

좋아요 ... 우편 번호 안에요? –