private static void ZipIncludeDirs(CompressedConfiguration config, ZipArchive archive, string siteName)
        {
            if (config.SearchDir == null)
            {
                return;
            }
            foreach (string dir in config.SearchDir)
            {
                string        dirPath = dir;
                DirectoryInfo dirInfo = new DirectoryInfo(dirPath);
                string        dirName = dirInfo.Name;
                FileInfo[]    files   = null;
                if (dir.Contains("csv"))
                {
                    files = dirInfo.GetFiles("*" + siteName + "*.csv");
                }
                else
                {
                    files = dirInfo.GetFiles("*" + siteName + "*");
                }

                foreach (var file in files)
                {
                    archive.CreateEntryFromFile(file.FullName, dirName + "\\" + file.Name);
                }
            }
        }
 private static void ZipCitation(CompressedConfiguration config, Metadata md, string citationSaveDir, ZipArchive archive)
 {
     if (config.IncludeCitation)
     {
         string citationPath = Path.Combine(citationSaveDir, md.CitationName);
         if (File.Exists(citationPath))
         {
             Console.WriteLine("Adding file to zip: " + citationPath);
             archive.CreateEntryFromFile(citationPath, md.CitationName);
         }
     }
 }
 private static void ZipIncludeFiles(CompressedConfiguration config, ZipArchive archive)
 {
     if (config.IncludeFiles == null)
     {
         return;
     }
     foreach (string file in config.IncludeFiles)
     {
         FileInfo f = new FileInfo(file);
         Console.WriteLine("Adding file to zip: " + file);
         archive.CreateEntryFromFile(f.FullName, f.Name);
     }
 }
        public static void CreateCompressedDirectory(CompressedConfiguration config, Metadata md, string citationSaveDir)
        {
            Directory.CreateDirectory(config.CompressedDir);
            string zipName = Path.Combine(config.CompressedDir, config.CompressedName);

            Console.WriteLine("Zip: Archive name->\t" + config.CompressedName);
            Console.WriteLine("Zip: Writing to->\t" + config.CompressedDir);

            using (FileStream ms = new FileStream(zipName, FileMode.Create))
            {
                using (var archive = new ZipArchive(ms, ZipArchiveMode.Create, true))
                {
                    ZipIncludeFiles(config, archive);
                    ZipIncludeDirs(config, archive, md.LocID);
                    ZipCitation(config, md, citationSaveDir, archive);
                }
            }
        }