Пример #1
0
        private void openToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            OpenFileDialog fd = new OpenFileDialog()
            {
                Filter = "All FPAC Files|*.pac"
            };

            if (fd.ShowDialog() == DialogResult.OK)
            {
                BlazBlueEditor.File[] Files = FPac.Open(new StreamReader(fd.FileName).BaseStream);
                string OutDir = fd.FileName + "~";
                if (System.IO.Directory.Exists(OutDir))
                {
                    int cnt = 2;
                    while (System.IO.Directory.Exists(OutDir + cnt))
                    {
                        cnt++;
                    }
                    OutDir += cnt;
                }
                OutDir += '\\';
                StringBuilder List = new StringBuilder();
                System.IO.Directory.CreateDirectory(OutDir);
                int ind = 0;
                foreach (BlazBlueEditor.File File in Files)
                {
                    List.AppendLine(string.Format("{0}={1}", ind++, File.FileName));
                    Stream Writer = new StreamWriter(OutDir + File.FileName).BaseStream;
                    int    Readed = 0;
                    byte[] Buffer = new byte[1024 * 1024];
                    do
                    {
                        Readed = File.Data.Read(Buffer, 0, Buffer.Length);
                        Writer.Write(Buffer, 0, Readed);
                    } while (Readed > 0);
                    Writer.Close();
                    File.Data.Close();
                }
                System.IO.File.WriteAllText(OutDir + "BBE-IndexTree.txt", List.ToString(), Encoding.UTF8);
                MessageBox.Show("Packget Extracted.");
            }
        }
Пример #2
0
        private void repackToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog Folder = new FolderBrowserDialog();

            if (Folder.ShowDialog() == DialogResult.OK)
            {
                SaveFileDialog save = new SaveFileDialog();
                save.Filter = "All Pac Files|*.pac";
                if (save.ShowDialog() == DialogResult.OK)
                {
                    List <string> Files = new List <string>(Directory.GetFiles(Folder.SelectedPath, "*.*"));
                    int[]         Keys  = new int[Files.Count - 1];
                    string[]      FList = System.IO.File.ReadAllLines(Folder.SelectedPath + "\\BBE-IndexTree.txt", Encoding.UTF8);
                    for (int i = 0; i < Files.Count; i++)
                    {
                        string FN = System.IO.Path.GetFileName(Files[i]);
                        if (FN.ToLower() == "bbe-indextree.txt")
                        {
                            Files.Remove(Files[i--]);
                            continue;
                        }
                        Keys[i] = GetFileIndex(FN, FList);
                    }
                    string[] FArr = Files.ToArray();
                    Array.Sort(Keys, FArr);
                    List <BlazBlueEditor.File> Arr = new List <BlazBlueEditor.File>();
                    foreach (string File in FArr)
                    {
                        Arr.Add(new BlazBlueEditor.File()
                        {
                            FileName = System.IO.Path.GetFileName(File),
                            Data     = new StreamReader(File).BaseStream
                        });
                    }
                    FPac.Pack(Arr.ToArray(), new StreamWriter(save.FileName).BaseStream);
                    MessageBox.Show("Packget Created.");
                }
            }
        }