Inheritance: ConsoleProgressBar
        public static void ToTar(this DirectoryInfo sourceDirectory, Stream output, string[] excludedDirectoryNames)
        {
            var archive = TarArchive.CreateOutputTarArchive(output);

            archive.RootPath = sourceDirectory.FullName.Replace(Path.DirectorySeparatorChar, '/').TrimEnd('/');

            var entries = GetFiles(sourceDirectory, excludedDirectoryNames)
                .Select(x => TarEntry.CreateEntryFromFile(x.FullName))
                .ToList();

            var entriesCount = entries.Count();

            var progressBar = new MegaByteProgressBar();
            for (var i = 0; i < entriesCount; i++)
            {
                archive.WriteEntry(entries[i], true);

                progressBar.Update("Packing files", entries.Take(i + 1).Sum(x => x.Size), entries.Sum(x => x.Size));
            }

            archive.Close();
        }
        public static void ToTar(this DirectoryInfo sourceDirectory, Stream output, string[] excludedDirectoryNames)
        {
            var archive = TarArchive.CreateOutputTarArchive(output);

            archive.RootPath = sourceDirectory.FullName.Replace(Path.DirectorySeparatorChar, '/').TrimEnd('/');

            var entries = GetFiles(sourceDirectory, excludedDirectoryNames)
                          .Select(x => TarEntry.CreateEntryFromFile(x.FullName))
                          .ToList();

            var entriesCount = entries.Count();

            var progressBar = new MegaByteProgressBar();

            for (var i = 0; i < entriesCount; i++)
            {
                archive.WriteEntry(entries[i], true);

                progressBar.Update("Packing files", entries.Take(i + 1).Sum(x => x.Size), entries.Sum(x => x.Size));
            }

            archive.Close();
        }