Esempio n. 1
0
 /// <summary>
 /// Opens the archive and throws exceptions or returns OperationResult.DataError if any error occurs.
 /// </summary>
 /// <param name="archiveStream">The IInStream compliant class instance, that is, the input stream.</param>
 /// <param name="openCallback">The ArchiveOpenCallback instance.</param>
 /// <returns>True if Open() succeeds; otherwise, false.</returns>
 private bool OpenArchive(IInStream archiveStream,
     ArchiveOpenCallback openCallback)
 {
     if (!_opened)
     {
         if (OpenArchiveInner(archiveStream, openCallback) != OperationResult.Ok)
         {
             if (!ThrowException(null, new SevenZipArchiveException()))
             {
                 return false;
             }
         }
         _volumeFileNames = new ReadOnlyCollection<string>(openCallback.VolumeFileNames);
         _opened = true;
     }
     return true;
 }
Esempio n. 2
0
 private void CommonDispose()
 {
     if (_opened)
     {
         try
         {
             if (_archive != null)
             {
                 _archive.Close();
             }
         }
         catch (Exception) { }
     }
     _archive = null;
     _archiveFileData = null;
     _archiveProperties = null;
     _archiveFileInfoCollection = null;
     _inStream = null;
     if (_openCallback != null)
     {
         try
         {
             _openCallback.Dispose();
         }
         catch (ObjectDisposedException) { }
         _openCallback = null;
     }
     if (_archiveStream != null)
     {
         if (_archiveStream is IDisposable)
         {
             try
             {
                 if (_archiveStream is DisposeVariableWrapper)
                 {
                     (_archiveStream as DisposeVariableWrapper).DisposeStream = true;
                 }
                 (_archiveStream as IDisposable).Dispose();
             }
             catch (ObjectDisposedException) { }
             _archiveStream = null;
         }
     }
     SevenZipLibraryManager.FreeLibrary(this, _format);
 }
Esempio n. 3
0
 private ArchiveOpenCallback GetArchiveOpenCallback()
 {
     return _openCallback ?? (_openCallback = String.IsNullOrEmpty(Password)
                             ? new ArchiveOpenCallback(_fileName)
                             : new ArchiveOpenCallback(_fileName, Password));
 }