Beispiel #1
0
        private void changeDriveInComboBox(object sender, EventArgs e)
        {
            FileManagerCore fmC      = null;
            ComboBox        comboBox = sender as ComboBox;

            if (comboBox == comboBox1)
            {
                fmC = fmC1;
            }
            if (comboBox == comboBox2)
            {
                fmC = fmC2;
            }

            if (fmC != null)
            {
                try
                {
                    fmC.changeDrive(comboBox.Text);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
Beispiel #2
0
        public FormMain()
        {
            InitializeComponent();

            fmC1 = new FileManagerCore(listBox1, textBoxAddress1, comboBox1);
            fmC2 = new FileManagerCore(listBox2, textBoxAddress2, comboBox2);
        }
Beispiel #3
0
        private void listBoxDoubleClick(object sender, MouseEventArgs e)
        {
            FileManagerCore fmC     = null;
            ListBox         listBox = sender as ListBox;

            if (listBox == listBox1)
            {
                fmC = fmC1;
            }
            if (listBox == listBox2)
            {
                fmC = fmC2;
            }

            if (listBox.SelectedItem != null)
            {
                try
                {
                    fmC.enter((FSItem)listBox.SelectedItem);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        public void readResource(string resourceFileDir)
        {
            BinaryReader reader = new BinaryReader(File.Open(resourceFileDir, FileMode.Open));

            MemoryStream headerStream = FileManagerCore.ReadGameData(reader.BaseStream);
            BinaryReader headerReader = new BinaryReader(headerStream);

            long nameDataLen = headerReader.ReadInt64();

            FileManagerCore.byteBoundaryWork(headerReader.BaseStream, false);

            for (long i = 0; i < nameDataLen; ++i)
            {
                short id     = headerReader.ReadInt16();
                long  offset = headerReader.ReadInt64();
                long  size   = headerReader.ReadInt64();

                byte[] data = new byte[size];
                FileManagerCore.readBytes(data, offset, reader.BaseStream);

                nameData.Add(id, Encoding.UTF8.GetString(data));

                FileManagerCore.byteBoundaryWork(headerReader.BaseStream, false);
            }

            long directoryDataLen = headerReader.ReadInt64();

            FileManagerCore.byteBoundaryWork(headerReader.BaseStream, false);

            for (long i = 0; i < directoryDataLen; ++i)
            {
                short id       = headerReader.ReadInt16();
                short parentID = headerReader.ReadInt16();
                short nameID   = headerReader.ReadInt16();

                ResDirectory dir = new ResDirectory(id, nameData[nameID]);

                directoryData.Add(id, dir);

                if (directoryData.ContainsKey(parentID))
                {
                    directoryData[parentID].addChildDir(dir);
                }
                else
                {
                    baseDir = dir;
                }

                FileManagerCore.byteBoundaryWork(headerReader.BaseStream, false);
            }

            long fileDataLen = headerReader.ReadInt64();

            FileManagerCore.byteBoundaryWork(headerReader.BaseStream, false);
            for (long i = 0; i < fileDataLen; ++i)
            {
                short id       = headerReader.ReadInt16();
                short parentID = headerReader.ReadInt16();
                short nameID   = headerReader.ReadInt16();
                long  offset   = headerReader.ReadInt64();
                long  size     = headerReader.ReadInt64();

                byte[] data = new byte[size];
                FileManagerCore.readBytes(data, offset, reader.BaseStream);


                ResFile file = new ResFile(id, nameData[nameID], data);

                directoryData[parentID].addChildFile(file);

                FileManagerCore.byteBoundaryWork(headerReader.BaseStream, false);
            }
        }