public void Extract(ArchiveEntry entry, StreamSequence output, Stream input, Byte[] buff) { int size = (int)entry.UncompressedSize; if (size == 0) { return; } ScdFileReader reader = new ScdFileReader(input); WaveStream[] waveStreams = reader.Read(); if (waveStreams.Length == 0) { return; } Extract(output, waveStreams[0], buff); for (int i = 1; i < waveStreams.Length; i++) { if (!output.TryCreateNextStream(i.ToString("D3"))) { throw new InvalidDataException(); } Extract(output, waveStreams[i], buff); } }
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 RenameElementCommand(Document document, IStream element, string name) : base(document) { _element = (StreamSequence)element; _oldName = _element.Name; _newName = name; }
public void Extract(ArchiveEntry entry, StreamSequence output, Stream input, Byte[] buff) { int size = (int)entry.UncompressedSize; if (size == 0) { return; } input.CopyToStream(output, size, buff); }
public void Extract(ArchiveEntry entry, StreamSequence output, Stream input, Byte[] buff) { int size = (int)entry.UncompressedSize; if (size == 0) { return; } ZtrFileUnpacker unpacker = new ZtrFileUnpacker(input, InteractionService.TextEncoding.Provide().Encoding); ZtrFileEntry[] entries = unpacker.Unpack(); ZtrTextWriter writer = new ZtrTextWriter(output, StringsZtrFormatter.Instance); writer.Write(entry.Name, entries); }