2015-08-05 5 views
0


Я пробовал SevenZipLib и SevenZipSharp, но безуспешно. Может ли кто-нибудь дать мне рабочий пример архивирования текстового файла в tar.gz, используя любую бесплатную библиотеку?
Я знаю, что это не лучший способ пойти на молнию, но это требование, которое у меня есть.Как создать файл tar.gz в C#

+0

Обе библиотеки, на которые вы ссылались, поддерживают tar и gz, хотя они довольно старые. Вы столкнулись с конкретной проблемой? –

ответ

2

Возможно, наиболее популярным пакетом в NuGet, поддерживающим TAR, является SharpZipLib. В его вики есть примеры для работы с tar.gz файлами, включая creation. Связанный пример архивирует всю папку.

Чтобы заархивировать один файл, образец может быть упрощена следующим образом:

private void CreateTarGZ(string tgzFilename, string fileName) 
{ 
    using (var outStream = File.Create(tgzFilename)) 
    using (var gzoStream = new GZipOutputStream(outStream)) 
    using (var tarArchive = TarArchive.CreateOutputTarArchive(gzoStream)) 
    { 
     tarArchive.RootPath = Path.GetDirectoryName(fileName); 

     var tarEntry = TarEntry.CreateEntryFromFile(fileName); 
     tarEntry.Name = Path.GetFileName(fileName); 

     tarArchive.WriteEntry(tarEntry,true); 
    } 
} 

По существу, вы должны создать TarEntry для каждой папки и файла, который вы хотите сохранить.

+0

Мне удалось изменить требование и работать с zip-файлами, но я считаю, что ваш ответ будет работать ... – Stavros

0

Следующее решение может работать, а также: How to Create a Tar GZipped File in C#

Я не проверял это, так как я не буду работать с файлами tar.gz после того, как все, но выглядит полным и говорили, что это работает.

 Смежные вопросы

  • Нет связанных вопросов^_^