.. пример использования одного из классов (продакшен, большая часть кода основана на расширениях, не удивляйтесь если хелп чего то не найдет ;))
internal static void save(bool debug = false)
{
if (mustBeSaved)
{
var dfa = Directory.GetFiles(bot.wai, df, SearchOption.TopDirectoryOnly);
if (dfa.Length > 0)
dfa[0].toZip(df);
var fmt = Formatting.None;
if (debug)
fmt = Formatting.Indented;
File.WriteAllText(Path.Combine(bot.wai, df), JsonConvert.SerializeObject(dumps, fmt));
}
}
internal static void toZip(this string f, string n)
{
var z = (new StringBuilder(f))
.Append('.')
.Append(DateTime.Now.ToString("yyyyMMdd-HHmmss"))
.Append(".zip")
.ToString();
using (var zip = ZipFile.Open(z, ZipArchiveMode.Create))
zip.CreateEntryFromFile(f, n);
}
этот фрагмент ищет нет ли некого джесона в папке программы? если он есть - существующий джесон пакуется (в имя вставляется метка времени - типа бекап, при чем не перетирающий старые бекапы, в данной задаче подчистка на 10м месте, а вот сохранение истории версий приличное время - важно)