public void Extract() { if (_leafs.Length == 0) { return; } String root = InteractionService.WorkingLocation.Provide().ProvideExtractedDirectory(); byte[] buff = new byte[32 * 1024]; foreach (ArchiveEntry entry in _leafs) { String targetExtension; IArchiveEntryExtractor extractor = GetExtractor(entry, out targetExtension); if (extractor == null) { continue; } String targetPath = Path.Combine(root, PathEx.ChangeMultiDotExtension(entry.Name, targetExtension)); String directoryPath = Path.GetDirectoryName(targetPath); _target.CreateDirectory(directoryPath); using (Stream input = _listing.Accessor.ExtractBinary(entry)) using (StreamSequence output = _target.Create(targetPath)) extractor.Extract(entry, output, input, buff); } }
public void Extract() { if (_leafs.Length == 0) { return; } String root = InteractionService.WorkingLocation.Provide().ProvideExtractedDirectory(); String targetDirectory = Path.Combine(root, _listing.ExtractionSubpath); _target.CreateDirectory(targetDirectory); byte[] buff = new byte[32 * 1024]; foreach (WpdEntry entry in _leafs) { String targetExtension; IWpdEntryExtractor extractor = GetExtractor(entry, out targetExtension); if (extractor == null) { return; } String targetPath = Path.Combine(targetDirectory, entry.NameWithoutExtension + '.' + targetExtension); using (Stream output = _target.Create(targetPath)) extractor.Extract(entry, output, _headers, _content, buff); } }
public void Extract() { if (_leafs.Length == 0) { return; } String movieDirectory = InteractionService.GameLocation.Provide().MovieDirectory; String packagePostfix = _listing.PackagePostfix; String root = InteractionService.WorkingLocation.Provide().ProvideExtractedDirectory(); String targetDirectory = Path.Combine(root, _listing.ExtractionSubpath); _target.CreateDirectory(targetDirectory); byte[] buff = new byte[32 * 1024]; foreach (WdbMovieEntry entry in _leafs) { String targetExtension; IWdbMovieEntryExtractor extractor = GetExtractor(entry, out targetExtension); if (extractor == null) { return; } String packageDirectory = Path.Combine(targetDirectory, entry.PackageName); Directory.CreateDirectory(packageDirectory); String sourcePath = Path.Combine(movieDirectory, entry.PackageName + packagePostfix + ".win32.wmp"); String targetPath = Path.Combine(packageDirectory, entry.Entry.NameWithoutExtension + '.' + targetExtension); using (Stream input = File.OpenRead(sourcePath)) using (Stream output = _target.Create(targetPath)) extractor.Extract(entry, output, input, buff); } }