Пример #1
0
        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);
            }
        }
Пример #2
0
        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;
                }
            }
        }