95 int getNumEntries() const noexcept;
101 const
ZipEntry* getEntry (
int index) const noexcept;
109 int getIndexOfFileName (const
String& fileName,
bool ignoreCase = false) const noexcept;
118 const
ZipEntry* getEntry (const
String& fileName,
bool ignoreCase = false) const noexcept;
121 void sortEntriesByFilename();
164 Result uncompressTo (const
File& targetDirectory,
165 bool shouldOverwriteFiles = true);
178 Result uncompressEntry (
int index,
179 const
File& targetDirectory,
180 bool shouldOverwriteFiles = true);
182 enum class OverwriteFiles { no, yes };
183 enum class FollowSymlinks { no, yes };
197 Result uncompressEntry (
int index,
198 const File& targetDirectory,
199 OverwriteFiles overwriteFiles,
200 FollowSymlinks followSymlinks);
225 void addFile (
const File& fileToAdd,
int compressionLevel,
240 void addEntry (
InputStream* streamToRead,
int compressionLevel,
241 const String& storedPathName,
Time fileModificationTime);
247 bool writeToStream (
OutputStream& target,
double* progress)
const;
254 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (
Builder)
259 struct ZipInputStream;
260 struct ZipEntryHolder;
265 std::unique_ptr<InputStream> streamToDelete;
266 std::unique_ptr<InputSource> inputSource;
269 struct OpenStreamCounter
271 OpenStreamCounter() =
default;
272 ~OpenStreamCounter();
274 int numOpenStreams = 0;
277 OpenStreamCounter streamCounter;
282 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (
ZipFile)