private void opencatalogToolStripButton_Click(object sender, EventArgs e) { if (ofdCatalog.ShowDialog() == DialogResult.Cancel) { return; } // Read the catalog from the file tsStatus.Text = "Reading catalog..."; mFileName = CCatalogNode.ReadBackupFilename(ofdCatalog.FileName); if (mFile != null) { mFile.Close(); } mFile = new CBackupReader(mFileName); CCatalogNode node = CCatalogNode.ReadCatalog(ofdCatalog.FileName); // Populate tree view tvDirs.Nodes.Clear(); tvDirs.Nodes.Add("root", node.Name, 0); tvDirs.Nodes[0].Tag = node; PopulateTreeView(tvDirs.Nodes[0], node); tsStatus.Text = "Select a single volume, folder or file to extract."; // UI cues extractToolStripButton.Enabled = false; cancelToolStripButton.Enabled = false; savecatalogToolStripButton.Enabled = true; }
public bool ExtractTo(CBackupReader backupFile, string targetPath) { // Ensure that the target path has a trailing '\' if (targetPath[targetPath.Length - 1] != '\\') { targetPath += '\\'; } if ((mType == ENodeType.Root) || (mType == ENodeType.Set)) { throw new System.Exception("Tape and set nodes can not be extracted. Only volume, folder or file nodes can be extracted."); } if (mType == ENodeType.Volume) { var dirinfo = System.IO.Directory.CreateDirectory(targetPath); foreach (var node in mNodes) { node.ExtractTo(backupFile, dirinfo.FullName); } } else if (mType == ENodeType.Folder) { var dirinfo = System.IO.Directory.CreateDirectory(targetPath + mName); foreach (var node in mNodes) { node.ExtractTo(backupFile, dirinfo.FullName); } } else if (mType == ENodeType.File) { // Create the target directory if it does not exist System.IO.Directory.CreateDirectory(targetPath); backupFile.Stream.BaseStream.Seek(mOffset, System.IO.SeekOrigin.Begin); var file = new System.IO.FileStream(targetPath + mName, System.IO.FileMode.Create); var fileDescriptorBlock = (CFileDescriptorBlock)backupFile.Stream.ReadDBLK(); foreach (var data in fileDescriptorBlock.Streams) { if (data.Header.StreamID == "STAN") { file.Write(data.Data, 0, data.Data.Length); } } file.Close(); } return(true); }
private void openToolStripButton_Click(object sender, EventArgs e) { if (ofdBackup.ShowDialog() == DialogResult.OK) { // Open the backup file mFileName = ofdBackup.FileName; tsStatus.Text = "Reading " + mFileName; // UI cues openToolStripButton.Enabled = false; extractToolStripButton.Enabled = false; cancelToolStripButton.Enabled = true; opencatalogToolStripButton.Enabled = false; savecatalogToolStripButton.Enabled = false; // Open and read the catalog if (mFile != null) { mFile.Close(); } mFile = new CBackupReader(mFileName); mFile.OnProgressChange += new CBackupReader.ProgressChange(mFile_OnProgressChange); CCatalogNode node = mFile.ReadCatalog(); // Populate tree view tvDirs.Nodes.Clear(); tvDirs.Nodes.Add("root", node.Name, 0); tvDirs.Nodes[0].Tag = node; PopulateTreeView(tvDirs.Nodes[0], node); tsStatus.Text = "Select a single volume, folder or file to extract."; // UI cues openToolStripButton.Enabled = true; extractToolStripButton.Enabled = false; cancelToolStripButton.Enabled = false; savecatalogToolStripButton.Enabled = true; opencatalogToolStripButton.Enabled = true; savecatalogToolStripButton.Enabled = true; } }
private void opencatalogToolStripButton_Click(object sender, EventArgs e) { if (ofdCatalog.ShowDialog() == DialogResult.Cancel) return; // Read the catalog from the file tsStatus.Text = "Reading catalog..."; mFileName = CCatalogNode.ReadBackupFilename(ofdCatalog.FileName); if (mFile != null) mFile.Close(); mFile = new CBackupReader(mFileName); CCatalogNode node = CCatalogNode.ReadCatalog(ofdCatalog.FileName); // Populate tree view tvDirs.Nodes.Clear(); tvDirs.Nodes.Add("root", node.Name, 0); tvDirs.Nodes[0].Tag = node; PopulateTreeView(tvDirs.Nodes[0], node); tsStatus.Text = "Select a single volume, folder or file to extract."; // UI cues extractToolStripButton.Enabled = false; cancelToolStripButton.Enabled = false; savecatalogToolStripButton.Enabled = true; }
private void openToolStripButton_Click(object sender, EventArgs e) { if (ofdBackup.ShowDialog() == DialogResult.OK) { // Open the backup file mFileName = ofdBackup.FileName; tsStatus.Text = "Reading " + mFileName; // UI cues openToolStripButton.Enabled = false; extractToolStripButton.Enabled = false; cancelToolStripButton.Enabled = true; opencatalogToolStripButton.Enabled = false; savecatalogToolStripButton.Enabled = false; // Open and read the catalog if (mFile != null) mFile.Close(); mFile = new CBackupReader(mFileName); mFile.OnProgressChange += new CBackupReader.ProgressChange(mFile_OnProgressChange); CCatalogNode node = mFile.ReadCatalog(); // Populate tree view tvDirs.Nodes.Clear(); tvDirs.Nodes.Add("root", node.Name, 0); tvDirs.Nodes[0].Tag = node; PopulateTreeView(tvDirs.Nodes[0], node); tsStatus.Text = "Select a single volume, folder or file to extract."; // UI cues openToolStripButton.Enabled = true; extractToolStripButton.Enabled = false; cancelToolStripButton.Enabled = false; savecatalogToolStripButton.Enabled = true; opencatalogToolStripButton.Enabled = true; savecatalogToolStripButton.Enabled = true; } }