Example #1
0
        private static void Worker(object arg)
        {
            UpdateMarquee um      = (UpdateMarquee)arg;
            string        zipFile = Path.Combine(Environment.CurrentDirectory, "updateZipFile.zip");

            byte[] zipFileContent = SpeditUpdater.Properties.Resources.spedit1_0_3_1Update;

            File.WriteAllBytes(zipFile, zipFileContent);

            FileInfo zipInfo = new FileInfo(zipFile);

            string extractPath = Environment.CurrentDirectory;

            using (ZipArchive archieve = ZipFile.OpenRead(zipInfo.FullName))
            {
                var entries = archieve.Entries;
                foreach (var entry in entries)
                {
                    string   full  = Path.Combine(extractPath, entry.FullName);
                    FileInfo fInfo = new FileInfo(full);
                    if (!Directory.Exists(fInfo.DirectoryName))
                    {
                        Directory.CreateDirectory(fInfo.DirectoryName);
                    }
                    entry.ExtractToFile(fInfo.FullName, true);
                }
            }

            zipInfo.Delete();

            um.Invoke((InvokeDel)(() =>
            {
                um.SetToReadyState();
            }));
        }