Я пробовал SevenZipLib и SevenZipSharp, но безуспешно. Может ли кто-нибудь дать мне рабочий пример архивирования текстового файла в tar.gz, используя любую бесплатную библиотеку?
Я знаю, что это не лучший способ пойти на молнию, но это требование, которое у меня есть.Как создать файл tar.gz в C#
ответ
Возможно, наиболее популярным пакетом в 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
для каждой папки и файла, который вы хотите сохранить.
Мне удалось изменить требование и работать с zip-файлами, но я считаю, что ваш ответ будет работать ... – Stavros
Следующее решение может работать, а также: How to Create a Tar GZipped File in C#
Я не проверял это, так как я не буду работать с файлами tar.gz после того, как все, но выглядит полным и говорили, что это работает.
Обе библиотеки, на которые вы ссылались, поддерживают tar и gz, хотя они довольно старые. Вы столкнулись с конкретной проблемой? –