Dobrý den,
chtěl bych se Vás zeptat, zdali nemáte někdo zkušenost s knihovnou SharpZipLib a to přímo s kompresí do tar.gz.
Potřebuji, aby při kompresi v balíku nezůstala zdrojová složka, tzn. když zadám např. cestu C:\\data , tak aby se v balíku nevytvořila složka data.
Děkuji za odpověď
aurus
using System.IO;
using ICSharpCode.SharpZipLib.Tar;
using ICSharpCode.SharpZipLib.GZip;
using System;
class MakeTar
{
public void CreateTar(string outputTarFilename, string sourceDirectory)
{
using (FileStream fs = new FileStream(outputTarFilename, FileMode.Create, FileAccess.Write, FileShare.None))
using (Stream gzipStream = new GZipOutputStream(fs))
using (TarArchive tarArchive = TarArchive.CreateOutputTarArchive(gzipStream))
{
AddDirectoryFilesToTar(tarArchive, sourceDirectory, true);
}
}
private void AddDirectoryFilesToTar(TarArchive tarArchive, string sourceDirectory, bool recurse)
{
// Recursively add sub-folders
if (recurse)
{
string[] directories = Directory.GetDirectories(sourceDirectory);
foreach (string directory in directories)
AddDirectoryFilesToTar(tarArchive, directory, recurse);
}
// Add files
string[] filenames = Directory.GetFiles(sourceDirectory);
foreach (string filename in filenames)
{
TarEntry tarEntry = TarEntry.CreateEntryFromFile(filename);
tarArchive.WriteEntry(tarEntry, true);
}
}
}