Как создать, извлечь и обновить файл Tar GZIP в Windows

  1. Команды Linux
  2. Примеры
  3. Команды 7zip
  4. Создать, извлечь и обновить файл TAR GZIP в C #
  5. Создать, извлечь и обновить файл TAR GZIP в C #
  6. Извлеките файл .tar.gz
  7. Обновите файл .tar.gz
  8. Исходный код

В последнее время нашей команде необходимо регулярно обновлять файлы Tar GZIP, созданные для Linux на Windows. GZIP - это формат файлов для сжатия и распаковки файлов. В отличие от ZIP, GZIP используется для сжатия только одного файла. Обычно нам приходится собирать файлы в один архив tar, а затем сжимать этот архив с помощью gzip (.tar.gz или .tgz). Я потратил некоторое время на поиски обходного пути упаковки файлов TAR GZIP в Windows.

Команды Linux

Windows 10 теперь поддерживает установку дистрибутивов Linux как подсистем. Для создания пакетов tar.gz удобно использовать команды Linux в инструментах командной строки.

Примеры

Создайте архив .tar.gz:

tar -czvf dwt.tar.gz dwt /

Извлечь архив в каталог

tar -xzvf dwt.tar.gz -C tmp /

Команды 7zip

7zip может сжимать и распаковывать файлы .tar.gz в Windows.

Создать .tar.gz:

7z a -ttar -so dwt.tar dwt / | 7z a -si dwt.tar.gz

Извлечь .tar.gz :

7z x dwt.tar.gz -so | 7z x -si-ттар

Обновить tar.gz :

7z x dwt.tar.gz && 7z u dwt.tar dwt && del dwt.tar.gz && 7z a dwt.tar.gz dwt.tar && del dwt.tar

Создать, извлечь и обновить файл TAR GZIP в C #

Для программной работы файлов .tar.gz мы можем использовать SharpZipLib , Учебник Образцы GZip и Tar Также очень полезно.

Создать, извлечь и обновить файл TAR GZIP в C #

Создайте файл .tar.gz

private void CreateTarGZ (строка tgzFilename, строка sourceDirectory) {Stream outStream = File.Create (tgzFilename); Поток gzoStream = new GZipOutputStream (outStream); TarArchive tarArchive = TarArchive.CreateOutputTarArchive (gzoStream); // Обратите внимание на то, что RootPath в настоящее время чувствителен к регистру и должен иметь прямую косую черту, например, «c: / temp» // и не должен заканчиваться косой чертой, в противном случае обрезается первый символ имени файла // Это планируется исправить в следующем выпуске tarArchive .RootPath = sourceDirectory.Replace ('\\', '/'); if (tarArchive.RootPath.EndsWith ("/")) tarArchive.RootPath = tarArchive.RootPath.Remove (tarArchive.RootPath.Length - 1); AddDirectoryFilesToTar (tarArchive, sourceDirectory, true, true); tarArchive.Close (); } private void AddDirectoryFilesToTar (TarArchive tarArchive, строка sourceDirectory, bool recurse, bool isRoot) {// При желании можно написать запись для самого каталога. // Укажите false для рекурсии, если мы добавим файлы каталога по отдельности. // TarEntry tarEntry; if (! isRoot) {tarEntry = TarEntry.CreateEntryFromFile (sourceDirectory); tarArchive.WriteEntry (tarEntry, false); } // Записать каждый файл в tar. // string [] filenames = Directory.GetFiles (sourceDirectory); foreach (строковое имя файла в именах файлов) {tarEntry = TarEntry.CreateEntryFromFile (filename); ЕЫпе (tarEntry.Name); tarArchive.WriteEntry (tarEntry, true); } if (recurse) {string [] directoryies = Directory.GetDirectories (sourceDirectory); foreach (строковый каталог в каталогах) AddDirectoryFilesToTar (tarArchive, directory, recurse, false); }}

Извлеките файл .tar.gz

public void ExtractTGZ (String gzArchiveName, String destFolder) {Stream inStream = File.OpenRead (gzArchiveName); Поток gzipStream = new GZipInputStream (inStream); TarArchive tarArchive = TarArchive.CreateInputTarArchive (gzipStream); tarArchive.ExtractContents (destFolder); tarArchive.Close (); gzipStream.Close (); inStream.Close (); }

Обновите файл .tar.gz

Обновление файла .tar.gz немного сложнее, потому что сначала нам нужно распаковать .tar.gz в .tar, а затем обновить .tar и снова сжать до .tar.gz.

Извлечь .tar.gz в .tar:

открытая строка ExtractGZipFile (строка gzipFileName, строка targetDir) {// Использовать буфер 4K. Любое большее - пустая трата. byte [] dataBuffer = новый байт [4096]; using (System.IO.Stream fs = new FileStream (gzipFileName, FileMode.Open, FileAccess.Read)) {using (GZipInputStream gzipStream = new GZipInputStream (fs)) {// Измените эту строку в соответствии с вашими потребностями fnOut = Path.Combine ( targetDir, Path.GetFileNameWithoutExtension (gzipFileName)); using (FileStream fsOut = File.Create (fnOut)) {StreamUtils.Copy (gzipStream, fsOut, dataBuffer); } return fnOut; }}}

Обновить .tar:

public void UpdateTar (строка tarFileName, строка targetFile, bool asciiTranslate) {использование (FileStream fsIn = новый FileStream (tarFileName, FileMode.Open, FileAccess.Read)) {строка tmpTar = Path.Combine (Path.GetDirectoryName (tarFileName)), " .tar "); using (FileStream fsOut = new FileStream (tmpTar, FileMode.OpenOrCreate, FileAccess.Write)) {TarOutputStream tarOutputStream = new TarOutputStream (fsOut); TarInputStream tarIn = new TarInputStream (fsIn); TarEntry tarEntry; while ((tarEntry = tarIn.GetNextEntry ())! = null) {if (tarEntry.IsDirectory) {continue; } // Преобразует косые черты Unix в именах файлов в обратные косые черты Windows // string name = tarEntry.Name.Replace ('/', Path.DirectorySeparatorChar); строка sourceFileName = Path.GetFileName (targetFile); строка targetFileName = Path.GetFileName (tarEntry.Name); if (sourceFileName.Equals (targetFileName)) {using (Stream inputStream = File.OpenRead (targetFile)) {long fileSize = inputStream.Length; TarEntry entry = TarEntry.CreateTarEntry (tarEntry.Name); // Должен установить размер, иначе TarOutputStream потерпит неудачу при превышении выходных данных. entry.Size = fileSize; // Добавить запись в поток tar перед записью данных. tarOutputStream.PutNextEntry (вход); // это скопировано из TarArchive.WriteEntryCore byte [] localBuffer = new byte [32 * 1024]; while (true) {int numRead = inputStream.Read (localBuffer, 0, localBuffer.Length); if (numRead <= 0) {break; } tarOutputStream.Write (localBuffer, 0, numRead); }} tarOutputStream.CloseEntry (); } else {tarOutputStream.PutNextEntry (tarEntry); if (asciiTranslate) {CopyWithAsciiTranslate (tarIn, tarOutputStream); } else {tarIn.CopyEntryContents (tarOutputStream); } tarOutputStream.CloseEntry (); }} tarIn.Close (); tarOutputStream.Close (); } File.Delete (tarFileName); File.Move (tmpTar, tarFileName); }}

Обновление .tar.gz:

private void UpdateTarGZ (строка tgzFilename, строка tarFileName) {Stream gzoStream = new GZipOutputStream (File.Create (tgzFilename)); using (FileStream source = File.Open (tarFileName, FileMode.Open)) {byte [] localBuffer = новый байт [32 * 1024]; while (true) {int numRead = source.Read (localBuffer, 0, localBuffer.Length); if (numRead <= 0) {break; } gzoStream.Write (localBuffer, 0, numRead); }} gzoStream.Close (); File.Delete (tarFileName); }

Создайте приложение:

dotnet publish -c Релиз -r win10-x64

Запустите приложение, используя 'dotne run' или 'targzip':

Запустите приложение, используя 'dotne run' или 'targzip':

Исходный код

https://github.com/yushulx/dotnet-tar-gzip

Похожие

Как обновить пол на балконе или террасе (IKEA RUNNEN)?
Пол на нашем балконе был заложен 6 лет назад. Плитка оказалась низкого качества. Появились трещины и другие повреждения. Пол не выглядел хорошо. Сколоть плитки - это большая проблема, а еще более сложная - это укладка новых. Кроме того, балкон должен был быть отремонтирован быстро. Мы выбрали доску RUNNEN от IKEA в коричневой окраске. Напольная плитка - это простой способ освежить террасу или балкон. Поверхность одного пакета плитки составляет 0,81 м². Конструкция из одной плиты
Темные круги под глазами - как с ними бороться?
Темные круги под глазами - проклятие современных вечно занятых и бессонных людей. Наиболее частые синяки вокруг глаз являются признаком хронической усталости и отсутствия достаточного количества или качества сна. Они также могут быть симптомом тревожных заболеваний, в том
Как вы моете кухню?
Вопреки внешнему виду уборка кухни не должна быть трудоемкой и трудоемкой. Чтобы обеспечить гигиеническую чистоту, способствующую здоровью и хорошей атмосфере в помещении, рекомендуется регулярно чистить их и время от времени организовывать общие уборки. В интересах здоровья Порядок на кухне - это отношение. Никто не
Как обустроить зал, отделенный от коридора?
... внего времени был редкостью. В последние годы многие инвесторы отказываются от отдельного вестибюля, но это не всегда хорошее решение. Иногда стоит подумать, как устроить зал, чтобы он был функциональным. В конце концов, это решение имеет много преимуществ. Малый зал - достоинства и недостатки Домашний вестибюль служит замком, защищающим интерьер от сквозняков, а также от холода и непогоды. Две пары дверей отделяют жильцов от окружающей среды и помогают поддерживать
Как украсить елку?
Рождественская елка - одна из традиций, без которой мы не можем представить Рождество. Это основной декоративный элемент в квартире или доме. Дети любят ее за то, что находят подарки от святого Николая под ней. Взрослым нравится атмосфера и настроение, которыми обладает красиво украшенное и освещенное дерево. Некоторые люди одевают елку каждый год в соответствии с многолетними традициями. Таким образом, на него вешают разноцветные безделушки
Эстетическая медицина Жешув
Лазерная эпиляция Традиционные методы удаления волос, такие как бритье, выщипывание или вощение, дают временные эффекты. На сегодняшний день лазерная эпиляция является лучшим методом для устранения ненужных волос на теле. В Салоне лазерной косметики мы работаем над диодными лазерами: Lightsheer от Coherent-Lumenis и Primelase, в настоящее время являющимися одним из самых эффективных устройств лазерной эпиляции в мире. Почему с нами? У нас
Как продать брендовую одежду?
Вы планируете торговать одеждой узнаваемых брендов по всему миру? Что вы должны знать, прежде чем начать бизнес, независимо от того, хотите ли вы открыть стационарный магазин, интернет-магазин или интернет-магазин фирменной одежды? Легальная продажа женской, мужской или детской одежды должна осуществляться при зарегистрированной коммерческой деятельности с указанием конкретного номера PKD. Конечно, одежда, которую мы намереваемся продать, должна быть на 100% оригинальной, потому что торговля
С рассветом человека толкнул освоить путь к красивому и здоровому волосу, но простой вопрос «как пр...
С рассветом человека толкнул освоить путь к красивому и здоровому волосу, но простой вопрос «как правильно ухаживать за волосы?«Там нет четкого ответа. Ряд факторов стоят за желаемым состоянием волос. Стоит прочитать их и узнать, какие процедуры использовать и какую косметику использовать, чтобы ваши волосы выглядели здоровыми. Ниже приведены наиболее важные из них. Типы волос качество волос - сухие, жирные, блестящие, без блеска,
Астигматизм - что это? Как это обнаружить?
... вание астигматизм для людей, которые слышат его впервые, часто ассоциируется со страшными стигмами. Поэтому им очень приятно слышать, что это просто дефект зрения, проявляющийся в расплывчатом взгляде на детали, как издалека, так и вблизи. Содержание: Что такое астигматизм? Типы астигматизма Симптомы астигматизма Как вы сами определяете астигматизм?
Лазерное отбеливание зубов Варшава
Отбеливание зубов лампой Beyond за час! Если идеальный цвет зубов не «дан от природы», то профессиональное отбеливание зубов лазером придаст вашим зубам более яркий оттенок на несколько тонов. Все это можно получить за одночасовое посещение нашего стоматологического кабинета в городе Варшава. Лазерное отбеливание зубов - самый простой способ насладиться красивой и здоровой улыбкой. Чтобы помочь отбеливающим эффектам в стоматологическом кабинете и дольше сохранять белоснежную улыбку, мы предлагаем
OC цены выше но они не растут!
Ст. спонсируемый Как показывают последние сообщения, полис обязательного автострахования дороже на несколько злотых. К счастью, средняя сумма страховки варьируется в пределах 1000 злотых, хотя между отдельными городами существует значительное расхождение в ценах. Например, водители из Вроцлава должны заплатить более 1500 злотых за ОК, а водители, застрахующие автомобили в Люблине, - около 970 злотых. Независимо от того, где вы живете, самый дешевый

Комментарии

Как обращаться с серым предметом мебели?
Как обращаться с серым предметом мебели? Способ заключается в использовании отбеливателя . Этот тип подготовки дает древесине красивый, яркий цвет. Важным этапом также является нанесение воска. Этот процесс следует повторять несколько раз, каждый раз, чтобы обеспечить хорошую и точную полировку поверхности.
А как насчет послегарантийного ремонта?
А как насчет послегарантийного ремонта? К сожалению, гарантия - как в Польше, так и в Китае - не распространяется на механические дефекты. И это чаще всего случается с пользователями смартфонов. Вот почему поврежденный экран, разбитое стекло или треснувший корпус должны быть отремонтированы самостоятельно в послегарантийном обслуживании. Тогда часто оказывается, что стоимость такой услуги значительно превышает стоимость нового устройства. Почему это так? «Ремонт
Как приготовить маску из зеленой глины?
Как приготовить маску из зеленой глины? Для приготовления пасты достаточно добавить две столовые ложки воды или любимого гидролата. Смесь также может быть обогащена проверенным маслом. Полученную маску наносить толстым слоем на выбранную область тела: лицо, шеи, образный вырез, назад, бедро. Чтобы не высушить маску, рекомендуется время от времени опрыскивать ее термальной водой или наносить влажный компресс.
Возможно, это и есть цель баланса белого - контролировать цвет изображения таким образом, чтобы он отражал то, как мы видели реальность?
Возможно, это и есть цель баланса белого - контролировать цвет изображения таким образом, чтобы он отражал то, как мы видели реальность? На закате мы делаем фотографии для их характерного, очаровательного, теплого климата. Камера, делающая снимок во время заката, с активированным автоматическим балансом белого, изо всех сил попытается удалить доминирующую красную. Такая фотография будет неестественной и не будет отражать климат момента. В такой ситуации необходимо «одурачить» камеру, выбрав такой
Хотите ли вы чувствовать себя в своей гостиной, как на морском курорте элиты Нью-Йорка?
Хотите ли вы чувствовать себя в своей гостиной, как на морском курорте элиты Нью-Йорка? Украсьте выставочный зал в стиле Хэмптон! Пусть в нем преобладают блюз, серый и белый, элегантные аксессуары в стиле гламур, морские пейзажи и много теплого света. Классическая простота в сочетании с уютными акцентами создаст идеальную гармонию элегантности и свободы. Стиль Хэмптон заставит вас почувствовать, что вы находитесь
С рассветом человека толкнул освоить путь к красивому и здоровому волосу, но простой вопрос «как правильно ухаживать за волосы?
С рассветом человека толкнул освоить путь к красивому и здоровому волосу, но простой вопрос «как правильно ухаживать за волосы?«Там нет четкого ответа. Ряд факторов стоят за желаемым состоянием волос. Стоит прочитать их и узнать, какие процедуры использовать и какую косметику использовать, чтобы ваши волосы выглядели здоровыми. Ниже приведены наиболее важные из них. Типы волос качество волос - сухие, жирные, блестящие, без блеска, мягкие,
Как украсить небольшой зал?
Как украсить небольшой зал? Чем меньше здание, тем важнее оптимальное использование каждого квадратного метра. В небольших домах выход из прихожей может облегчить обустройство функционального пространства. Тем более что слишком маленький вестибюль не практичен и не выполняет свою роль. Если в нем только один человек, совершать крупные покупки или знакомить гостей оказывается неловко. В холодном климате осады, подъезды, веранды и вестибюли строились повсеместно, потому что практика говорила
Как выглядит лечение?
Как выглядит лечение? Первому лечению предшествует консультация. Дерматолог проводит собеседование, оценивает состояние и тип кожи, а также тип волос - от этих факторов зависит правильный выбор параметров лазера. Люди, прошедшие процедуру, проходят лазерный тест, а затем процедуру. Для лечения кожа должна быть выбрита, очищена и нелегирована. В головке устройства есть так называемая Лазерное пятно (в случае Lightsheer это квадратное окно с размерами 9x9 мм,
И как мы узнаем, когда брить и мыть бритву?
И как мы узнаем, когда брить и мыть бритву? Пусть никто не сомневается, Braun 7 показывает состояние батареи и грязи на дисплее . В комплекте также есть практичный чехол для бритвы на молнии. Это оказалось очень полезным во время поездки. Это одно из главных преимуществ электробритв. Мы
Как работает Vectus?
Как работает Vectus? Vectus - это диодный лазер с длиной проникновения луча 810 нм. Он работает благодаря технологии селективного фототермализа, разработанной группой ученых из Гарвардского университета. Благодаря этому лазер проникает точно в волосы, разрушает их и препятствует дальнейшему росту. В то же время он не раздражает и не оказывает неблагоприятного воздействия на окружающие ткани. Больше информации на объекте: Депиляция
Надежный и надежный пароль или как?
Надежный и надежный пароль или как? Пароли для наших учетных записей являются одним из наиболее важных средств защиты наших данных. Как и в случае с персональными данными и паролями, мы не должны спешить передавать или вводить где-либо за пределами формы входа. Когда банк или другое учреждение отправляет нам электронное письмо с просьбой ввести пароль для «проверки», мы можем быть уверены, что это попытка фишинга. В таких ситуациях вам не следует вводить пароль ни при каких обстоятельствах,

Почему с нами?
Вы планируете торговать одеждой узнаваемых брендов по всему миру?
Что вы должны знать, прежде чем начать бизнес, независимо от того, хотите ли вы открыть стационарный магазин, интернет-магазин или интернет-магазин фирменной одежды?
С рассветом человека толкнул освоить путь к красивому и здоровому волосу, но простой вопрос «как правильно ухаживать за волосы?
Как это обнаружить?
Содержание: Что такое астигматизм?
Типы астигматизма Симптомы астигматизма Как вы сами определяете астигматизм?
Как обращаться с серым предметом мебели?
А как насчет послегарантийного ремонта?
А как насчет послегарантийного ремонта?