Take a look at Libarchive. I spent a lot of time seeking for a cross-platform and LGPL licensed library with convenient interface. This the best of all I’ve seen. Very easy and powerful tool. Originally designed for Unix-like systems but there’s also the Windows version.
Related Contents:
- Simple way to unzip a .zip file using zlib [duplicate]
- Creating a ZIP file on Windows (XP/2003) in C/C++
- Regular cast vs. static_cast vs. dynamic_cast [duplicate]
- What does the explicit keyword mean?
- How do I get the directory that a program is running from?
- Is a string literal in С++ created in static memory?
- rand() returns same values when called within a single function
- What’s the difference between assignment operator and copy constructor?
- How to use enums as flags in C++?
- Why pass by const reference instead of by value?
- changing the delimiter for cin (c++)
- Overloading member access operators ->, .*
- How to Calculate Execution Time of a Code Snippet in C++
- Vector erase iterator
- How to implement atoi using SIMD?
- What is more efficient? Using pow to square or just multiply it with itself?
- Why is the C++ initializer_list behavior for std::vector and std::array different?
- long double vs double
- How do I print the elements of a C++ vector in GDB?
- double or float, which is faster? [duplicate]
- Why is including “using namespace” into a header file a bad idea in C++?
- Is storing an invalid pointer automatically undefined behavior?
- sizeof() a vector
- Why does C++ allow an integer to be assigned to a string?
- STL remove doesn’t work as expected?
- How to set file permissions (cross platform) in C++?
- Why must SetWindowsHookEx be used with a windows message queue
- Boost::Asio : io_service.run() vs poll() or how do I integrate boost::asio in mainloop
- How do I split an int into its digits?
- AllocConsole() not displaying cout
- C++ Get all bytes of a file in to a char array?
- How to Setup VS Code For C++ 14 /C ++17
- Understanding Boost.spirit’s string parser
- In C++, is it possible to forward declare a class as inheriting from another class?
- Comparing floating point number to zero
- Escape sequence \f – form feed – what exactly is it?
- How to handle arbitrarily large integers
- C++ Big Integer
- Area of rectangle-rectangle intersection
- Custom manipulator for C++ iostream
- How does *(&arr + 1) – arr give the length in elements of array arr?
- C++ error: undefined reference to ‘clock_gettime’ and ‘clock_settime’
- C++ equivalent of Java’s toString?
- //! [0] in Qt source code
- Programmatically access CPU fan on a laptop? (Windows)
- How can I make the map::find operation case insensitive?
- Simpler way to create a C++ memorystream from (char*, size_t), without copying the data?
- General rules of passing/returning reference of array (not pointer) to/from a function?
- What happens if a constructor throws an exception?
- Specialization of ‘template struct std::less’ in different namespace