Beispiel #1
0
        public void Selector_ExtractSelectedEntries()
        {
            //Directory.SetCurrentDirectory(TopLevelDir);

            string zipFileToCreate = Path.Combine(TopLevelDir, "Selector_ExtractSelectedEntries.zip");

            SetupFiles();

            TestContext.WriteLine("====================================================");
            TestContext.WriteLine("Creating zip...");
            using (ZipFile zip1 = new ZipFile())
            {
                zip1.AddDirectory(fodderDirectory, "");
                zip1.Save(zipFileToCreate);
            }
            Assert.AreEqual<Int32>(numFodderFiles, TestUtilities.CountEntries(zipFileToCreate));

            string extractDir = "extract";

            TestContext.WriteLine("====================================================");
            TestContext.WriteLine("Reading zip, ExtractSelectedEntries() by date...");
            using (ZipFile zip1 = ZipFile.Read(zipFileToCreate))
            {
                string crit = String.Format("mtime >= {0}", todayAtMidnight.ToString("yyyy-MM-dd"));
                TestContext.WriteLine("Criteria({0})", crit);
                zip1.ExtractSelectedEntries(crit, null, extractDir);
            }

            TestContext.WriteLine("====================================================");
            TestContext.WriteLine("Reading zip, ExtractSelectedEntries() by date, with overwrite...");
            using (ZipFile zip1 = ZipFile.Read(zipFileToCreate))
            {
                string crit = String.Format("mtime >= {0}", todayAtMidnight.ToString("yyyy-MM-dd"));
                TestContext.WriteLine("Criteria({0})", crit);
                zip1.ExtractSelectedEntries(crit, null, extractDir, ExtractExistingFileAction.OverwriteSilently);
            }


            // workitem 9174: test ExtractSelectedEntries using a directoryPathInArchive
            List<String> dirs = new List<String>();
            // first, get the list of directories used by all entries
            TestContext.WriteLine("Reading zip, ...");
            using (ZipFile zip1 = ZipFile.Read(zipFileToCreate))
            {
                foreach (var e in zip1)
                {
                    TestContext.WriteLine("entry {0}", e.FileName);
                    string p = Path.GetDirectoryName(e.FileName.Replace("/", "\\"));
                    if (!dirs.Contains(p)) dirs.Add(p);
                }
            }

            // with or without trailing slash
            for (int i = 0; i < 2; i++)
            {
                int grandTotal = 0;
                extractDir = String.Format("extract.{0}", i);
                for (int j = 0; j < dirs.Count; j++)
                {
                    string d = dirs[j];
                    if (i == 1) d += "\\";
                    TestContext.WriteLine("====================================================");
                    TestContext.WriteLine("Reading zip, ExtractSelectedEntries() by name, with directoryInArchive({0})...", d);
                    using (ZipFile zip1 = ZipFile.Read(zipFileToCreate))
                    {
                        string crit = "name = *.bin";
                        TestContext.WriteLine("Criteria({0})", crit);
                        var s = zip1.SelectEntries(crit, d);
                        TestContext.WriteLine("  {0} entries", s.Count);
                        grandTotal += s.Count;
                        zip1.ExtractSelectedEntries(crit, d, extractDir, ExtractExistingFileAction.OverwriteSilently);
                    }
                }
                TestContext.WriteLine("====================================================");
                TestContext.WriteLine("Total for all dirs: {0} entries", grandTotal);

                var extracted = Directory.GetFiles(extractDir, "*.bin", SearchOption.AllDirectories);

                Assert.AreEqual<Int32>(grandTotal, extracted.Length);
            }
        }
Beispiel #2
0
 private static void Update()
 {
     var req = (HttpWebRequest)WebRequest.Create(Upfile);
     var res = (HttpWebResponse)req.GetResponse();
     using (var instream = res.GetResponseStream())
     {
         using (var outstream = File.Create("OSUplayer.zip"))
         {
             byte[] buffer = new byte[1024];
             int count;
             do
             {
                 count = instream.Read(buffer, 0, buffer.Length);
                 if (count > 0)
                     outstream.Write(buffer, 0, count);
             }
             while (count > 0);
         }
     }
     string filename = Assembly.GetExecutingAssembly().Location;
     if (File.Exists(filename + ".detele")) File.Delete(filename + ".delete");
     File.Move(filename, filename + ".delete");
     using (var sourceFile = new ZipFile("OSUplayer.zip"))
     {
         sourceFile.ExtractSelectedEntries("OSUplayer.exe", ExtractExistingFileAction.OverwriteSilently);
     }
     File.Move("OSUplayer.exe", filename);
     File.Delete("OSUplayer.zip");
     File.Delete("list.db");
     MessageBox.Show(LanguageManager.Get("Update_Restart_Text"), LanguageManager.Get("Tip_Text"), MessageBoxButtons.OK, MessageBoxIcon.Information);
     var proc = Process.GetProcessesByName(Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().Location));
     var p = new Process { StartInfo = { FileName = filename } };
     p.Start();
     foreach (var pr in proc)
     {
         pr.Kill();
     }
 }