Example #1
0
        private void treeView_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (e.Node != null && e.Node.Tag != null)
            {
                if (e.Node.Tag.GetType() == typeof(fileStructure))
                {
                    fileStructure folder = e.Node.Tag as fileStructure;

                    fileSwapCode.Text = folder.Path;
                }
                else
                {
                    subFile file = e.Node.Tag as subFile;

                    fileSwapCode.Text = file.name + "\nLength: " + file.Length.ToString() + " bytes";
                }
            }
            else
            {
                fileSwapCode.Text = "";
            }
        }
Example #2
0
        public void addFile(String name, int tag)
        {
            subFile nSF = new subFile(name, tag, this);

            subFiles.Add(nSF);
        }
Example #3
0
        private void extractToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (treeView.SelectedNode == null || treeView.SelectedNode.Tag == null)
            {
                return;
            }

            if (treeView.SelectedNode.Tag.GetType() == typeof(fileStructure))
            {
                fileStructure folder = treeView.SelectedNode.Tag as fileStructure;

                using (FolderBrowserDialog sfd = new FolderBrowserDialog())
                {
                    sfd.Description  = "Select folder to be root of extracting " + folder.name;
                    sfd.SelectedPath = last_folder;
                    if (sfd.ShowDialog() == DialogResult.OK)
                    {
                        last_folder = sfd.SelectedPath;
                        Queue <fileStructure> fs = new Queue <fileStructure>();
                        List <KeyValuePair <String, String> > files = new List <KeyValuePair <String, String> >();
                        fs.Enqueue(folder);

                        while (fs.Count > 0)
                        {
                            fileStructure current = fs.Dequeue();

                            foreach (var item in current.GetFiles())
                            {
                                String path = sfd.SelectedPath + item.Path.Substring(folder.Path.Length);
                                if (!File.Exists(path))
                                {
                                    files.Add(new KeyValuePair <String, String>(item.Path, path));
                                }
                            }
                            foreach (var item in current.GetFolders())
                            {
                                fs.Enqueue(item);
                                Directory.CreateDirectory(sfd.SelectedPath + item.Path.Substring(folder.Path.Length));
                            }
                        }

                        ExtractFile(files);
                    }
                }
            }
            else
            {
                subFile file = treeView.SelectedNode.Tag as subFile;

                using (SaveFileDialog sfd = new SaveFileDialog())
                {
                    sfd.Title    = "Extract file " + file.name;
                    sfd.Filter   = "All Files (*.*)|*.*";
                    sfd.FileName = file.name;
                    if (sfd.ShowDialog() == DialogResult.OK)
                    {
                        ExtractFile(new KeyValuePair <String, String>[] { new KeyValuePair <String, String>(file.Path, sfd.FileName) });
                    }
                }
            }
        }
Example #4
0
        public void addFile(string name, int tag, uint length)
        {
            subFile nSF = new subFile(name, tag, length, this);

            subFiles.Add(nSF);
        }