예제 #1
0
        public static void addToZip(ZipOutputStream s, Crc32 crc, string file, bool putInFolder)
        {
            FileStream fs = File.OpenRead(file);

            byte[] buffer = new byte[fs.Length];
            fs.Read(buffer, 0, buffer.Length);
            string filename = Path.GetFileName(file);

            if (putInFolder)
            {
                filename = DreamTools.ReplaceSpecialChars(DreamTools.Reverse(DreamTools.Reverse(Path.GetDirectoryName(file)).Substring(0, DreamTools.Reverse(Path.GetDirectoryName(file)).IndexOf("\\"))) + "\\" + filename);
            }

//           MessageBox.Show(filename);
            ZipEntry entry = new ZipEntry(filename);

            entry.DateTime = DateTime.Now;
            entry.Size     = fs.Length;
            fs.Close();
            crc.Reset();
            crc.Update(buffer);
            entry.Crc = crc.Value;
            s.PutNextEntry(entry);
            s.Write(buffer, 0, buffer.Length);
        }