Создайте архив.tar.gz без структуры папок, используя SharpZipLib

Я пытаюсь.tar.gz список файлов из папки, используя SharpZipLib. Проблема не в том, как передать пути к файлам - результат всегда содержит пути к файлам, а не только сами файлы. Что мне здесь не хватает?

string filesFolder = "c:\\testfolder\\test\\";
List<string> filesToZip = new List<string>() { filesFolder +"test1", filesFolder  +"test2"};

using (FileStream fs = new FileStream(filesFolder +"myGz.tar.gz" , FileMode.Create, FileAccess.Write, FileShare.None))
using (Stream gzipStream = new GZipOutputStream(fs))
using (TarArchive tarArchive = TarArchive.CreateOutputTarArchive(gzipStream))
     {
      foreach (string filename in filesToZip )
      {
        {
          TarEntry tarEntry = TarEntry.CreateEntryFromFile(filename);
          tarArchive.WriteEntry(tarEntry, false);
        }
      }
     }

я получаю файлы myGz.tar.gz. Когда я пытаюсь открыть его с помощью 7.zip - я получаю полную структуру папок в архиве - c:\testfolder\test\, а в ней - "test1", "test".

Как мне удалить пути к файлам?

Спасибо

1 ответ

У меня была такая же проблема, и я понял это только после того, как нашел этот вопрос.

Ключ должен установить Name собственность tarEntryперед добавлением в архив.

TarEntry tarEntry = TarEntry.CreateEntryFromFile(filename);
tarEntry.Name = Path.GetFileName(filename);
tarArchive.WriteEntry(tarEntry, false);
Другие вопросы по тегам