A C++ static library offering a clean and simple interface to the 7-zip shared libraries.
Changes from v4.0.5:
BIT7Z_DISABLE_USE_STD_FILESYSTEM
not working on old macOS toolchains (issue #194).BitInputArchive
's ConstIterator
in const variables.Full Changelog: https://github.com/rikyoz/bit7z/compare/v4.0.5...v4.0.6
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Changes from v4.0.4:
BitInputArchive::extractTo
.FilesystemItem
object in OpenCallback
.BIT7Z_DISABLE_USE_STD_FILESYSTEM
, which makes bit7z always use ghc::filesystem
instead of std::filesystem
.
std::filesystem
(e.g., https://github.com/rikyoz/bit7z/issues/181).std::filesystem
when available (as in previous versions).std::copy_n
warning in old versions of MSVC./Zc:__cplusplus
only when using MSVC 15.7 and later.Full Changelog: https://github.com/rikyoz/bit7z/compare/v4.0.4...v4.0.5
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Changes from v4.0.3:
Full Changelog: https://github.com/rikyoz/bit7z/compare/v4.0.3...v4.0.4
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Changes from v4.0.2:
bit7z::narrow
on Windows (close issue #172).CMakeLists.txt
.Full Changelog: https://github.com/rikyoz/bit7z/compare/v4.0.2...v4.0.3
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Changes from v4.0.1:
tstring
and fs::path
throughout the code.
BIT7Z_USE_SYSTEM_CODEPAGE
.BIT7Z_USE_NATIVE_STRING
and BIT7Z_AUTO_PREFIX_LONG_PATHS
.FormatMessageA
for error messages on Windows.bit7z::to_tstring
.Full Changelog: https://github.com/rikyoz/bit7z/compare/v4.0.1...v4.0.2
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4.0.x, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Changes from v4.0.0:
Full Changelog: https://github.com/rikyoz/bit7z/compare/v4.0.0...v4.0.1
This is a maintenance release. For a full changelog of bit7z v4.0.x, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Changes from v4.0.0-rc:
#include <algorithm>
in formatdetect.cpp (by @gr3yknigh1 in https://github.com/rikyoz/bit7z/pull/132).fs
namespace internal to the bit7z
namespace (fix https://github.com/rikyoz/bit7z/issues/141).BIT7Z_DISABLE_ZIP_ASCII_PWD_CHECK
CMake option).BIT7Z_7ZIP_VERSION
option (e.g., -DBIT7Z_7ZIP_VERSION=22.01
).BIT7Z_CUSTOM_7ZIP_PATH
.BIT7Z_USE_SYSTEM_CODEPAGE
to make bit7z use the system codepage for std::string
instead of UTF-8 (highly not recommended).fs::path
to tstring
and vice versa.BitFailureSource
error condition enum: it can be used for performing queries on bit7z's std::error_code
s, for the purpose of grouping, classification, or error translation.Full Changelog: https://github.com/rikyoz/bit7z/compare/v4.0.0-rc...v4.0.0
Changes from v3.2.x:
BitArchiveInfo
to BitArchiveReader
.BitArchiveReader
.BitArchiveReader
/BitInputArchive
behave like an std
container (e.g., added iterators).BitArchiveWriter
class that allows creating a single new archive or updating an old one with new items.BitArchiveEditor
class that allows editing existing archives.
None
: Trying to update and archive will throw a BitException
.Append
: New items will be appended to the archive (i.e., the old update behavior).Overwrite
: New items whose path already exists in the archive will be overwritten, and others will be appended.BitExtractor
class to BitFileExtractor
.
BitExtractor
is just a template class for all the extraction classes.BitCompressor
class to BitFileCompressor
.
BitCompressor
is just a template class for all the compression classes.std::string
instead of std::wstring
.
-DBIT7Z_USE_NATIVE_STRING
CMake option. In this case:
std::wstring
(as in bit7z v3);std::string
.BIT7Z_BUILD_TESTS
option).OverwriteMode
enum that allows configuring how to deal with when an output file or buffer already exists (issue #116). It works for both compressors and extractors.
None
: The archive handler will throw an exception.Overwrite
: The handler will overwrite the old file or buffer with the new one.Skip
: The handler will skip writing to the output file or buffer.BitArchiveItem
.include/bit7z/
folder.
Full Changelog: https://github.com/rikyoz/bit7z/compare/v3.2.0...v4.0.0
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Changes from v4.0.0-beta:
BitAbstractArchiveCreator
not respecting the retaining directories option.BIT7Z_BUILD_TESTS
option).
BitOutputArchive::addItems
not respecting the file indexing options.guids.cpp
and guids.hpp
(issue #113).OverwriteMode
enum that allows configuring how to deal with when an output file or buffer already exists (issue #116). It works for both compressors and extractors.
None
: The archive handler will throw an exception.Overwrite
: The handler will overwrite the old file or buffer with the new one.Skip
: The handler will skip writing to the output file or buffer.UpdateMode::OverwriteArchive
enumerator: the same result can be achieved by setting OverwriteMode::Overwrite
.BitArchiveItem
.UpdateMode::Update
and deprecated UpdateMode::Overwrite
.BitAbstractArchiveCreator::setUpdateMode(bool)
.CVolumeOutStream
calling the wrong parent class SetSize
method.posixCode()
method to BitException
.include/bit7z/
folder.
Full Changelog: https://github.com/rikyoz/bit7z/compare/a75e335...ac49527
Changes from v3.2.x:
BitArchiveInfo
to BitArchiveReader
.BitArchiveReader
.BitArchiveReader
/BitInputArchive
behave like an std
container (e.g., added iterators).BitArchiveWriter
class that allows creating a single new archive or updating an old one with new items.BitArchiveEditor
class that allows editing existing archives.
None
: Trying to update and archive will throw a BitException
.Append
: New items will be appended to the archive (i.e., the old update behavior).Overwrite
: New items whose path already exists in the archive will be overwritten, and others will be appended.BitExtractor
class to BitFileExtractor
.
BitExtractor
is just a template class for all the extraction classes.BitCompressor
class to BitFileCompressor
.
BitCompressor
is just a template class for all the compression classes.std::string
instead of std::wstring
.
-DBIT7Z_USE_NATIVE_STRING
CMake option. In this case:
std::wstring
(as in bit7z v3);std::string
.Full Changelog: https://github.com/rikyoz/bit7z/compare/v3.2.0...v4.0.0-rc
Binaries built using Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Changes from v3.2.0:
Full Changelog: https://github.com/rikyoz/bit7z/compare/v3.1.5...v3.2.0
Binaries built using MSVC 2015, 2017, and 2019 👇
Changes from v3.1.x:
BitArchiveInfo
to BitArchiveReader
.BitArchiveReader
.BitArchiveReader
/BitInputArchive
behave like an std
container (e.g., added iterators).BitArchiveWriter
class that allows creating a single new archive or updating an old one with new items.BitArchiveEditor
class that allows editing existing archives.
None
: Trying to update and archive will throw a BitException
.Append
: New items will be appended to the archive (i.e., the old update behavior).Overwrite
: New items whose path already exists in the archive will be overwritten, and other will be appended.OverwriteArchive
: The output archive will be deleted and recreated (unless it is a multi-volume archive, in which case an exception is thrown).BitExtractor
class to BitFileExtractor
.
BitExtractor
is just a template class for all the extraction classes.BitCompressor
class to BitFileCompressor
.
BitCompressor
is just a template class for all the compression classes.std::string
instead of std::wstring
.
-DBIT7Z_USE_NATIVE_STRING
CMake option. In this case:
std::wstring
(as in bit7z v3);std::string
.Full Changelog: https://github.com/rikyoz/bit7z/compare/v3.1.5...v4.0.0-beta
Binaries built using Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, and 2019 👇