/// <summary> /// Decompress an encrypted FAES File. /// </summary> /// <param name="encryptedFile">Encrypted FAES File</param> /// <param name="overridePath">Override the read path</param> /// <returns>Path of the encrypted, Decompressed file</returns> public string DecompressFAESFile(FAES_File encryptedFile, string overridePath = "") { string fileCompressionMode = FileAES_Utilities.GetCompressionMode(encryptedFile.GetPath()); Logging.Log(String.Format("Compression Mode: {0}", fileCompressionMode), Severity.DEBUG); switch (fileCompressionMode) { case "LZMA": LZMA lzma = new LZMA(); return(lzma.DecompressFAESFile(encryptedFile, overridePath)); case "TAR": TAR tar = new TAR(); return(tar.DecompressFAESFile(encryptedFile, overridePath)); case "ZIP": ZIP zip = new ZIP(_compressionLevel); return(zip.DecompressFAESFile(encryptedFile, overridePath)); case "LEGACY": case "LEGACYZIP": case "LGYZIP": LegacyZIP legacyZip = new LegacyZIP(); return(legacyZip.DecompressFAESFile(encryptedFile, overridePath)); default: throw new NotSupportedException("FAES File was compressed using an unsupported file format."); } }
/// <summary> /// Compress an unencrypted FAES File. /// </summary> /// <param name="unencryptedFile">Unencrypted FAES File</param> /// <returns>Path of the unencrypted, compressed file</returns> public string CompressFAESFile(FAES_File unencryptedFile) { switch (_compressionMode) { case CompressionMode.LZMA: LZMA lzma = new LZMA(); Logging.Log("Compression Mode: LZMA", Severity.DEBUG); return(lzma.CompressFAESFile(unencryptedFile)); case CompressionMode.TAR: TAR tar = new TAR(); Logging.Log("Compression Mode: TAR", Severity.DEBUG); return(tar.CompressFAESFile(unencryptedFile)); case CompressionMode.LGYZIP: LegacyZIP legacyZIP = new LegacyZIP(); Logging.Log("Compression Mode: LEGACYZIP", Severity.DEBUG); return(legacyZIP.CompressFAESFile(unencryptedFile)); default: { ZIP zip; Logging.Log("Compression Mode: ZIP", Severity.DEBUG); if (_compressionLevelRaw < 0) { Logging.Log(String.Format("Compression Level: {0}", _compressionLevel), Severity.DEBUG); zip = new ZIP(_compressionLevel); } else { Logging.Log(String.Format("Compression Level: {0}", _compressionLevelRaw), Severity.DEBUG); zip = new ZIP(_compressionLevelRaw); } return(zip.CompressFAESFile(unencryptedFile)); } } }