// Copyright Pandores Marketplace 2024. All Rights Reserved. #include "ZipLibrary.h" void UZipLibrary::ZipDirectory(const FString& FolderPath, const FString& TargetLocation, const FString& Password, const EZipCompressLevel CompressLevel, const EZipCreationFlag CreationFlag, const FOnFilesZipped& OnFilesZipped, const FOnFileZipped& OnFileZipped) { UZipper* const Zipper = UZipper::CreateZipper(); if (OnFilesZipped.IsBound()) { Zipper->OnFilesZipped().AddLambda([OnFilesZipped](const bool bSuccess, const int64 A) -> void { OnFilesZipped.Broadcast(bSuccess, A); }); } if (OnFileZipped.IsBound()) { Zipper->OnFileZipped().AddLambda([OnFileZipped](const FString& A, const FString& B, const int64 C, const int64 D) -> void { OnFileZipped.Broadcast(A, B, C, D); }); } Zipper->AddDirectory(FolderPath); Zipper->ZipAsync(TargetLocation, Password, CompressLevel, CreationFlag); } void UZipLibrary::UnzipArchive(const FString& ArchivePath, const FString& TargetLocation, const FString& Password, const bool bForce, const FOnFilesUnzipped& OnFilesUnzipped, const FOnFileUnzipped& OnFileUnzipped) { UUnzipper* const Unzipper = UUnzipper::CreateUnzipper(); Unzipper->SetArchive(ArchivePath); if (OnFilesUnzipped.IsBound()) { Unzipper->OnFilesUnzipped().AddLambda([OnFilesUnzipped](const bool A, const int64 B) -> void { OnFilesUnzipped.Broadcast(A, B); }); } if (OnFileUnzipped.IsBound()) { Unzipper->OnFileUnzipped().AddLambda([OnFileUnzipped](const FString& A, const FString& B, const int64 C, const int64 D) -> void { OnFileUnzipped.Broadcast(A, B, C, D); }); } Unzipper->UnzipAllAsync(TargetLocation, Password, bForce); }