示例#1
0
 // Token: 0x06000144 RID: 324 RVA: 0x0000E108 File Offset: 0x0000C308
 public static void PackedZip(string pathFolder, string zipName)
 {
     ZipStore.ZipStorer zipStorer = ZipStore.ZipStorer.Create(zipName + ".zip", "");
     zipStorer.EncodeUTF8 = true;
     foreach (string text in Directory.GetFiles(pathFolder, "*.*", SearchOption.AllDirectories))
     {
         string filenameInZip = text.Replace(pathFolder, "");
         zipStorer.AddFile(ZipStore.ZipStorer.Compression.Deflate, text, filenameInZip, "");
     }
     zipStorer.Close();
 }
示例#2
0
            // Token: 0x06000157 RID: 343 RVA: 0x0000EA40 File Offset: 0x0000CC40
            public static bool RemoveEntries(ref ZipStore.ZipStorer _zip, List <ZipStore.ZipStorer.ZipFileEntry> _zfes)
            {
                if (!(_zip.ZipFileStream is FileStream))
                {
                    throw new InvalidOperationException("RemoveEntries is allowed just over streams of type FileStream");
                }
                List <ZipStore.ZipStorer.ZipFileEntry> list = _zip.ReadCentralDir();
                string tempFileName  = Path.GetTempFileName();
                string tempFileName2 = Path.GetTempFileName();

                try
                {
                    ZipStore.ZipStorer zipStorer = ZipStore.ZipStorer.Create(tempFileName, string.Empty);
                    foreach (ZipStore.ZipStorer.ZipFileEntry zipFileEntry in list)
                    {
                        if (!_zfes.Contains(zipFileEntry) && _zip.ExtractFile(zipFileEntry, tempFileName2))
                        {
                            zipStorer.AddFile(zipFileEntry.Method, tempFileName2, zipFileEntry.FilenameInZip, zipFileEntry.Comment);
                        }
                    }
                    _zip.Close();
                    zipStorer.Close();
                    File.Delete(_zip.FileName);
                    File.Move(tempFileName, _zip.FileName);
                    _zip = ZipStore.ZipStorer.Open(_zip.FileName, _zip.Access);
                }
                catch
                {
                    return(false);
                }
                finally
                {
                    if (File.Exists(tempFileName))
                    {
                        File.Delete(tempFileName);
                    }
                    if (File.Exists(tempFileName2))
                    {
                        File.Delete(tempFileName2);
                    }
                }
                return(true);
            }