コード例 #1
0
        public static void Unpack(string tocFilePath, string outDirectoryPath)
        {
            abort          = false;
            overwriteFiles = false;
            SetProgressBarValue(0);
            progress = 0;

            byte[] rawToc = File.ReadAllBytes(tocFilePath);
            CryptTools.TocDecryptEncrypt(rawToc);

            Toc toc = new Toc(Path.GetFileNameWithoutExtension(tocFilePath), rawToc);

            packageSize = GetPackageSize(toc, 0);

            Unpack(toc, 0, "", Path.GetDirectoryName(tocFilePath), outDirectoryPath);

            if (abort)
            {
                SetProgressBarValue(0);
                SetStatusText("Aborted!");
            }
            else
            {
                SetStatusText("Finished!");
            }
        }
コード例 #2
0
        public static void Pack(string inDirectoryPath, string outDirectoryPath)
        {
            abort          = false;
            overwriteFiles = false;
            SetProgressBarValue(0);
            progress = 0;

            DirectoryInfo inDirectory = new DirectoryInfo(inDirectoryPath);

            inDirectoryPathLength = inDirectory.FullName.Length;
            packageSize           = GetDirectorySize(inDirectory);
            long entryCount = GetDirectoryItemCount(inDirectory) + 1;


            Toc toc = new Toc(inDirectory.Name, entryCount);

            Pack(toc, 0, 1, inDirectory, outDirectoryPath);

            if (!abort)
            {
                byte[] rawToc = toc.CreateRawToc();
                CryptTools.TocDecryptEncrypt(rawToc);
                SafeFileWrite(JoinPaths(outDirectoryPath, toc.name + ".toc"), rawToc);
            }


            if (abort)
            {
                SetProgressBarValue(0);
                SetStatusText("Aborted!");
            }
            else
            {
                SetStatusText("Finished!");
            }
        }