internal static void ExtractFromRarArchive(ExpandTuRarArchiveCommand cmdlet) { string[] pathToArchive = cmdlet.ArchiveName; string pathToTargetDirectory = cmdlet.TargetFolder; // ExtractExistingFileAction fileAction = ExtractExistingFileAction.DoNotOverwrite; // if (cmdlet.Overwrite) { // fileAction = ExtractExistingFileAction.OverwriteSilently; // } var options = ExtractOptions.Overwrite; foreach (string path in pathToArchive) { if (!string.IsNullOrEmpty(path)) { cmdlet.WriteVerbose( cmdlet, "extracting '" + path + "'"); try { // using (Ionic.zipARchive = ZipFile.Read(path)) { // // cmdlet.WriteVerbose(cmdlet, "opening the archive"); // // foreach (ZipEntry entry in zipARchive) { // // entry.Extract(pathToTargetDirectory, fileAction); // cmdlet.WriteObject( // cmdlet, // pathToTargetDirectory + // @"\" + // entry.FileName); // } // } RarArchive.WriteToDirectory( path, pathToTargetDirectory, options); // RarArchive.IsRarFile } catch (Exception eExtract) { cmdlet.WriteError( cmdlet, "Failed to extract archive '" + path + "'. " + eExtract.Message, "FailedToExtract", ErrorCategory.InvalidOperation, false); } } } }