/// <summary> /// Extract all files /// </summary> private void buttonExtractPackage_Click(object sender, EventArgs e) { FolderBrowserDialog FBD = new FolderBrowserDialog(); if (FBD.ShowDialog() == DialogResult.OK) { string ContainingPath = FBD.SelectedPath; if (checkBoxExtractMakeFolder.Checked) { ContainingPath += '\\' + SelectedExtract.FileName + '_' + TimeStamp(); } if (!Directory.Exists(ContainingPath)) { Directory.CreateDirectory(ContainingPath); } foreach (TreeNode Node in treeViewExtract.Nodes) { if (Node.Tag == null) { // Directory Extract ExtractDirectory(Node, ContainingPath); } else { // Single File Extract Unity3d.File File = (Unity3d.File)Node.Tag; File.Extract(ContainingPath + '\\' + Path.GetFileName(File.Name)); } } } }
/// <summary> /// Extract directory of files from TreeNode /// </summary> private void ExtractDirectory(TreeNode Node, string ContainingPath) { ContainingPath += '\\' + Node.Text; if (!Directory.Exists(ContainingPath)) { Directory.CreateDirectory(ContainingPath); } foreach (TreeNode Child in Node.Nodes) { if (Child.Tag == null) { // Another Directory ExtractDirectory(Child, ContainingPath); } else { // File Unity3d.File File = (Unity3d.File)Child.Tag; File.Extract(ContainingPath + '\\' + Path.GetFileName(File.Name)); } } }
/// <summary> /// Extract single node from treeview /// </summary> private void ExtractMenuExtract_Click(object sender, EventArgs e) { if (LastNode.Tag == null) { // Directory Extract FolderBrowserDialog FBD = new FolderBrowserDialog(); if (FBD.ShowDialog() == DialogResult.OK) { ExtractDirectory(LastNode, FBD.SelectedPath); } } else { // Single File Extract SaveFileDialog SFD = new SaveFileDialog(); Unity3d.File File = (Unity3d.File)LastNode.Tag; SFD.FileName = File.Name; if (SFD.ShowDialog() == DialogResult.OK) { File.Extract(SFD.FileName); } } }