예제 #1
0
파일: File.cs 프로젝트: GianiWVL/VUYLSTEKE
 // Methods
 public void Dissect()
 {
     byte[] buffer = new byte[0x800];
     using (ZipInputStream stream2 = new ZipInputStream(this.MS))
     {
         for (ZipEntry entry = stream2.GetNextEntry(); entry != null; entry = stream2.GetNextEntry())
         {
             if (!entry.IsDirectory)
             {
                 ZipFileEntry item = new ZipFileEntry
                 {
                     Name = entry.FileName
                 };
                 MemoryStream stream = new MemoryStream();
                 if (Strings.Len(this.Pass) > 0)
                 {
                     stream2.Password = this.Pass;
                 }
                 if (entry.UncompressedSize > 0L)
                 {
                     for (int i = stream2.Read(buffer, 0, buffer.Length); i > 0; i = stream2.Read(buffer, 0, buffer.Length))
                     {
                         stream.Write(buffer, 0, i);
                     }
                 }
                 item.contents = stream.ToArray();
                 this.Files.Add(item, null, null, null);
             }
             else
             {
                 ZipFileEntry entry3 = new ZipFileEntry
                 {
                     IsDir = true,
                     Name = entry.FileName
                 };
             }
         }
     }
 }