/// <summary> /// Starts a read-only transaction. /// </summary> /// <remarks> /// This puts the archive into read-only mode. /// </remarks> public void BeginReadOnlyTransaction() { if (m_szeReadOnlyExtractor == null) { m_szeReadOnlyExtractor = GetThreadSafeExtractor(m_strPath); if (m_szeReadOnlyExtractor.IsSolid) { m_szeReadOnlyExtractor.Dispose(); m_szeReadOnlyExtractor = null; m_strReadOnlyTempDirectory = Program.CreateTempDirectory(); using (SevenZipExtractor szeExtractor = Archive.GetExtractor(m_strPath)) { szeExtractor.FileExtractionFinished += new EventHandler<FileInfoEventArgs>(FileExtractionFinished); szeExtractor.FileExtractionStarted += new EventHandler<FileInfoEventArgs>(FileExtractionStarted); szeExtractor.ExtractArchive(m_strReadOnlyTempDirectory); } } } }
/// <summary> /// Starts a read-only transaction. /// </summary> /// <remarks> /// This puts the archive into read-only mode. /// </remarks> public void BeginReadOnlyTransaction() { if (m_szeReadOnlyExtractor == null) { m_szeReadOnlyExtractor = GetThreadSafeExtractor(ArchivePath); if (m_szeReadOnlyExtractor.IsSolid) { m_szeReadOnlyExtractor.Dispose(); m_szeReadOnlyExtractor = null; m_strReadOnlyTempDirectory = Program.CreateTempDirectory(); using (var szeExtractor = GetExtractor(ArchivePath)) { szeExtractor.FileExtractionFinished += FileExtractionFinished; szeExtractor.FileExtractionStarted += FileExtractionStarted; szeExtractor.ExtractArchive(m_strReadOnlyTempDirectory); } } } }