private static void ProcessTarEntry(string targetFilePath, TarInputStream tarInputStream, TarEntry entry) { if (entry.IsDirectory) { var entries = entry.GetDirectoryEntries(); for (int z = 0; z < entries.Length; z++) { ProcessTarEntry(targetFilePath, tarInputStream, entries[z]); } } else { Console.WriteLine($"Processing '{entry.Name.Replace('/', Path.DirectorySeparatorChar)}'"); if (entry.Name.Contains("example", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine("Extract for Example is disabled"); return; } // Remeber about the separator char var fileName = entry.Name.Substring(EXILED_FOLDER_NAME.Length + 1); ResolvePath(fileName, out var path); ExtractEntry(tarInputStream, entry, path); } }
private static void ProcessTarEntry(CommandSettings args, string targetFilePath, TarInputStream tarInputStream, TarEntry entry) { if (entry.IsDirectory) { var entries = entry.GetDirectoryEntries(); for (int z = 0; z < entries.Length; z++) { ProcessTarEntry(args, targetFilePath, tarInputStream, entries[z]); } } else { Console.WriteLine($"Processing '{entry.Name}'"); if (entry.Name.Contains("example", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine($"Extract for {entry.Name} is disabled"); return; } switch (ResolveEntry(entry)) { case PathResolution.ABSOLUTE: ResolvePath(args, entry.Name, out var path); ExtractEntry(tarInputStream, entry, path); break; case PathResolution.GAME: ExtractEntry(tarInputStream, entry, targetFilePath); break; default: Console.WriteLine($"Couldn't resolve path for '{entry.Name}', update installer"); break; } } }