コード例 #1
0
ファイル: Form1.cs プロジェクト: kkzero241/AT7View
        //EXTRACT ALL FILES
        private void buttonExtractAll_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog toExtractTo = new FolderBrowserDialog();

            toExtractTo.Description = "Extract the contents to where?";

            DialogResult result = toExtractTo.ShowDialog();

            if (result == DialogResult.OK)
            {
                BinaryWriter currentOutput;
                string       selFolder = toExtractTo.SelectedPath;
                using (BinaryReader fileReader = new BinaryReader(File.Open(archiveName, FileMode.Open))) //Read the open archive to go through all the files
                {
                    foreach (TreeNode currentFile in treeView1.Nodes)
                    {
                        AT7FileNode dealingWith = currentFile.Tag as AT7FileNode;
                        Console.WriteLine($"{selFolder}\\{dealingWith.getName()}");
                        currentOutput = new BinaryWriter(File.Open($"{selFolder}\\{dealingWith.getName()}", FileMode.Create));
                        fileReader.BaseStream.Position = dealingWith.getOffset();
                        currentOutput.Write(fileReader.ReadBytes((int)dealingWith.getSize()));
                        currentOutput.Close();
                    }
                }

                DialogResult extractedYay = new DialogResult();
                extractedYay = MessageBox.Show($"All files of {Path.GetFileName(archiveName)} extracted to {selFolder}.");
            }
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: kkzero241/AT7View
 private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
 {
     fileDetailsNode = e.Node.Tag as AT7FileNode;
     //Console.WriteLine(fileDetailsNode.ToString());
     infoTools.Text      = fileDetailsNode.ToString();
     fileExtension       = fileDetailsNode.getExt();
     fileName            = fileDetailsNode.getName();
     fileOffset          = fileDetailsNode.getOffset();
     fileSize            = fileDetailsNode.getSize();
     fileExtInfoBox.Text = fileExtension;
     AT7FileTypes.fileTypesDict.TryGetValue(fileExtension, out fileDesc); //Nabs the file description for the display label
     fileTypeDesc.Text      = fileDesc;
     buttonExtract.Enabled  = true;
     buttonExportAs.Enabled = false;
     buttonExportAs.Text    = "Export As";
     if (fileName.Equals("gmm.txt"))
     {
         buttonExportAs.Enabled = true;
         buttonExportAs.Text    = "Export .csv";
     }
     else if (fileExtension.Equals(".tex"))
     {
         buttonExportAs.Enabled = true;
         buttonExportAs.Text    = "Export .tpl";
     }
     buttonReplace.Enabled = true;
     //Console.WriteLine(treeView1.Nodes[0].Tag.ToString());
     //Console.WriteLine("Offset: {0:X}", fileDetailsNode.getOffset() + "\n Size: {0:X}", fileDetailsNode.getSize());
 }
コード例 #3
0
ファイル: Form1.cs プロジェクト: kkzero241/AT7View
        private void loadThatFile()
        {
            fileCount = 0;
            treeView1.Nodes.Clear();
            BinaryReader quickie = new BinaryReader(File.Open(archiveName, FileMode.Open));

            fileThings = new byte[0x1C];

            fileThings = quickie.ReadBytes(0x1C);
            if (fileThings[0] == 0x41 && fileThings[1] == 0x54 && fileThings[2] == 0x37 && fileThings[3] == 0x50)
            {
                /*DialogResult pleaseWait = new DialogResult();
                 * pleaseWait = MessageBox.Show("Decompressing file...");*/
                //fileTypeDesc.Text = $"Compressed data opened. Decompressing to {Path.GetFileName(archiveName)}";
                AT7FileProcessor.decompressAT7P(quickie, archiveName);
                archiveName = archiveName.Insert(archiveName.Length, ".raw");
                DialogResult decompressedTheFile = new DialogResult();
                decompressedTheFile = MessageBox.Show($"Archive decompressed as {Path.GetFileName(archiveName)}. Be sure to open this one from now on and not the one you just opened.");
                //fileTypeDesc.ResetText();
            }
            quickie.Close();
            Console.WriteLine(archiveName);
            using (BinaryReader fileReader = new BinaryReader(File.Open(archiveName, FileMode.Open)))
            {
                Console.WriteLine(archiveName);
                //progressBarExtract.Maximum = (int)fileReader.BaseStream.Length;

                fileThings = new byte[0x1C];

                fileThings = fileReader.ReadBytes(0x1C);



                //fileDetailsNode = new List<uint>();
                while (!Enumerable.SequenceEqual(fileThings, namesEnd))
                {
                    Console.WriteLine(BitConverter.ToString(fileThings));

                    //Now to prepare the filename's real length to remove the junk text
                    fileNameLength = 0;
                    for (int i = 8; fileThings[i] != 0x00; i++)
                    {
                        fileNameLength++;
                    }
                    fileName = Encoding.UTF8.GetString(fileThings, 8, fileNameLength);
                    TreeNode toAdd = new TreeNode(fileName);

                    //Now let's nab that file extension
                    fileExtension = "???";
                    foreach (string thing in AT7FileTypes.fileTypes)
                    {
                        if (fileName.Contains(thing))
                        {
                            fileExtension = thing;
                        }
                    }


                    AT7FileNode currentNode = new AT7FileNode(ReverseBytes(BitConverter.ToUInt32(fileThings, 4)), ReverseBytes(BitConverter.ToUInt32(fileThings, 0)), fileName, fileExtension);

                    /*fileOffset = ReverseBytes(BitConverter.ToUInt32(fileThings, 0));
                     * fileSize = ReverseBytes(BitConverter.ToUInt32(fileThings, 4));
                     * fileDetailsNode.Add(fileOffset); fileDetailsNode.Add(fileSize);*/


                    toAdd.Tag                = currentNode;
                    toAdd.ImageIndex         = AT7FileTypes.fileTypes.IndexOf(fileExtension);
                    toAdd.SelectedImageIndex = AT7FileTypes.fileTypes.IndexOf(fileExtension);
                    treeView1.Nodes.Add(toAdd);

                    /*fileName = Encoding.UTF8.GetString(fileThings, 8, fileNameLength); //Aaaaaaaand filename applied
                     * //fileName = fileName.Substring(0, fileName.IndexOf("?"));
                     * //TreeNode fileNode new TreeNode();*/


                    Console.WriteLine(treeView1.Nodes[fileCount].Text);
                    fileCount++;
                    fileThings = fileReader.ReadBytes(0x1C); //While loop ends with this
                }
            }
        }