Exemple #1
0
        internal static async Task <int> UnpackPak(FileInfo fileInfo, string outputDirectory, bool showContentInfo = false)
        {
            try
            {
                PakFile pak = PakFile.Open(fileInfo);

                if (showContentInfo)
                {
                    CliUtilities.PrintRow("File", "FileSize");
                    ShowPakInfo(pak);
                    Console.WriteLine();
                }

                Console.WriteLine($"Total file count {pak.FileCount} \n");

                bool unpack = CliUtilities.ShowConsolePrompt($"Do you want to unpack {fileInfo.Name}");

                if (unpack)
                {
                    await Unpack(pak, outputDirectory);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return(1);
            }
            return(0);
        }
Exemple #2
0
        private static void ShowPakInfo(PakFile pak)
        {
            try
            {
                string[] fileNames = pak.AbsoluteIndex.Select(f => f.Value.FileName).ToArray();
                string[] fileSizes = pak.AbsoluteIndex.Select(f => f.Value.UncompressedSize.ToString()).ToArray();

                foreach (KeyValuePair <string, PakEntry> pakDict in pak.AbsoluteIndex)
                {
                    var name = pakDict.Value.FileName;
                    var size = pakDict.Value.UncompressedSize.ToString();

                    CliUtilities.PrintLine();
                    CliUtilities.PrintRow(name, size);
                }
                CliUtilities.PrintLine();
            }
            catch (Exception)
            {
                throw;
            }
        }