/// <summary> /// Inflate (decompress) an archive /// </summary> /// /// <param name="DirectoryPath">The directory path where files will be written</param> /// <param name="InStream">The stream containing the compressed archive</param> public void Inflate(string DirectoryPath, Stream InStream) { if (!m_isInitialized) { throw new CryptoProcessingException("CompressionCipher:Compress", "The class is not be Initialized!", new ArgumentException()); } if (!DirectoryTools.Exists(DirectoryPath)) { Directory.CreateDirectory(DirectoryPath); } if (!DirectoryTools.IsWritable(DirectoryPath)) { throw new CryptoProcessingException("CompressionCipher:InFlate", "Directory path is not writable! Check permissions.", new AccessViolationException()); } // decrypt stream MemoryStream outStream = new MemoryStream(); base.Write(InStream, outStream); outStream.Seek(0, SeekOrigin.Begin); // decompress m_cmpEngine.DeCompressArchive(outStream, DirectoryPath); }