AcManager.Tools.ContentInstallation.SharpCompressExtension.Open C# (CSharp) Method

Open() public static method

public static Open ( string filename, string password ) : IArchive
filename string
password string
return IArchive
        public static IArchive Open(string filename, string password) {
            var archive = ArchiveFactory.Open(filename);
            if (password == null) return archive;

            switch (archive.Type) {
                case ArchiveType.Rar:
                    return RarArchive.Open(filename, new ReaderOptions { Password = password });
                case ArchiveType.Zip:
                    return ZipArchive.Open(filename, new ReaderOptions { Password = password });
                case ArchiveType.Tar:
                case ArchiveType.SevenZip:
                case ArchiveType.GZip:
                    throw new NotSupportedException(string.Format(ToolsStrings.ArchiveInstallator_UnsupportedEncryption, archive.Type));
                default:
                    throw new ArgumentOutOfRangeException();
            }
        }

Usage Example

 private static IArchive CreateExtractor(string filename, string password)
 {
     try {
         var extractor = SharpCompressExtension.Open(filename, password);
         if (extractor.HasAnyEncryptedFiles())
         {
             throw new PasswordException(password == null ? ToolsStrings.ArchiveInstallator_PasswordIsRequired :
                                         ToolsStrings.ArchiveInstallator_PasswordIsInvalid);
         }
         return(extractor);
     } catch (CryptographicException) {
         throw new PasswordException(password == null ? ToolsStrings.ArchiveInstallator_PasswordIsRequired :
                                     ToolsStrings.ArchiveInstallator_PasswordIsInvalid);
     }
 }