Ejemplo n.º 1
0
        string generateVdfsEntriesTreeView(VdfsEntry[] entries)
        {
            var treeGenerator = new VdfsEntriesTreeGenerator(entries);

            var entriesTree = treeGenerator.Generate();

            return(entriesTree.GetTreeView());
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            List <string> extra;

            try
            {
                extra = options.Parse(args);
            }
            catch (OptionException e)
            {
                Console.WriteLine(e.Message);

                return;
            }

            if (Options.ShowHelp || extra.Count == 0)
            {
                PrintHelp();
            }
            else
            {
                var filePath = extra[0];

                if (File.Exists(filePath) == false)
                {
                    Console.WriteLine("File `{0}` do not exists!", filePath);

                    return;
                }

                var reader = new VdfsReader(filePath);

                if (Options.ExtractPath != string.Empty)
                {
                    Console.WriteLine("Extracting archive `{0}` to directory `{1}` (with hierarchy: {2}).", filePath, Options.ExtractPath, Options.WithHierarchy);

                    using (var extractor = new VdfsExtractor(reader))
                    {
                        extractor.ExtractFiles(Options.ExtractPath,
                                               (Options.WithHierarchy == true)
                         ? ExtractOption.Hierarchy
                         : ExtractOption.NoHierarchy);

                        Console.WriteLine("Done.");
                    }
                }
                else if (Options.PrintTree || Options.SaveTree != string.Empty)
                {
                    var entries = reader.ReadEntries(false).ToArray();

                    var treeGenerator = new VdfsEntriesTreeGenerator(entries);

                    var tree = treeGenerator.Generate();

                    var treeView = tree.GetTreeView();

                    if (Options.PrintTree)
                    {
                        Console.WriteLine();
                        Console.Write(treeView);
                    }
                    else
                    {
                        File.WriteAllText(Options.SaveTree, treeView);

                        Console.WriteLine("Entries tree saved to file `{0}`", Options.SaveTree);
                    }
                }
                else
                {
                    PrintHelp();
                }
            }

            return;
        }