CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
zip_file.h
1// NOTICE: AUTOPORTED from foundation/src/zip/ZipFile.cs with some stylistic fixes
2
3#ifndef _aspose_zip_zip_file_h_
4#define _aspose_zip_zip_file_h_
5
6#include <system/text/encoding.h>
7#include <system/string.h>
8#include <system/shared_ptr.h>
9#include <system/nullable.h>
10#include <system/io/text_writer.h>
11#include <system/io/stream.h>
12#include <system/eventhandler.h>
13#include <system/collections/list.h>
14#include <system/collections/ienumerable.h>
15#include <system/array.h>
16
17#include "zip/zlib_compression_flags.h"
18#include "zip/events.h"
19#include "zip/zip64_option.h"
20#include "zip/zip_error_action.h"
21#include "zip/extract_existing_file_action.h"
22#include "zip/encryption_algorithm.h"
23
24namespace Aspose { namespace Zip {
25
26class ZipEntry;
27
28class ASPOSECPP_SHARED_CLASS ZipFile : public System::Collections::Generic::IEnumerable<System::SharedPtr<ZipEntry>>
29{
31
32 ASPOSECPP_SHARED_RTTI_INFO_DECL();
33
34 friend class ZipEntry;
35
36public:
37
38 ASPOSECPP_SHARED_API ZipFile();
39 ASPOSECPP_SHARED_API ZipFile(const System::String& fileName);
40 ASPOSECPP_SHARED_API ZipFile(const System::String& fileName, const System::Text::Encoding::Ptr& encoding);
41 ASPOSECPP_SHARED_API ZipFile(const System::Text::Encoding::Ptr& encoding);
42 ASPOSECPP_SHARED_API ZipFile(const System::String& fileName, const System::IO::TextWriter::Ptr& statusMessageWriter);
43 ASPOSECPP_SHARED_API ZipFile(const System::String& fileName, const System::IO::TextWriter::Ptr& statusMessageWriter, const System::Text::Encoding::Ptr& encoding);
44
45 ASPOSECPP_SHARED_API bool get_FullScan() const;
46 ASPOSECPP_SHARED_API void set_FullScan(bool value);
47 ASPOSECPP_SHARED_API int get_BufferSize() const;
48 ASPOSECPP_SHARED_API void set_BufferSize(int value);
49 ASPOSECPP_SHARED_API int get_CodecBufferSize() const;
50 ASPOSECPP_SHARED_API void set_CodecBufferSize(int value);
51 ASPOSECPP_SHARED_API bool get_FlattenFoldersOnExtract() const;
52 ASPOSECPP_SHARED_API void set_FlattenFoldersOnExtract(bool value);
53 ASPOSECPP_SHARED_API CompressionStrategy get_Strategy() const;
54 ASPOSECPP_SHARED_API void set_Strategy(CompressionStrategy value);
55 ASPOSECPP_SHARED_API System::String get_Name() const;
56 ASPOSECPP_SHARED_API void set_Name(const System::String& value);
57 ASPOSECPP_SHARED_API CompressionLevel get_CompressionLevel() const;
58 ASPOSECPP_SHARED_API void set_CompressionLevel(CompressionLevel value);
59 ASPOSECPP_SHARED_API System::String get_Comment() const;
60 ASPOSECPP_SHARED_API void set_Comment(const System::String& value);
61 ASPOSECPP_SHARED_API bool get_EmitTimesInWindowsFormatWhenSaving() const;
62 ASPOSECPP_SHARED_API void set_EmitTimesInWindowsFormatWhenSaving(bool value);
63 ASPOSECPP_SHARED_API bool get_EmitTimesInUnixFormatWhenSaving() const;
64 ASPOSECPP_SHARED_API void set_EmitTimesInUnixFormatWhenSaving(bool value);
65 ASPOSECPP_SHARED_API bool get_CaseSensitiveRetrieval() const;
66 ASPOSECPP_SHARED_API void set_CaseSensitiveRetrieval(bool value);
67 ASPOSECPP_SHARED_API bool get_UseUnicodeAsNecessary() const;
68 ASPOSECPP_SHARED_API void set_UseUnicodeAsNecessary(bool value);
69 ASPOSECPP_SHARED_API Zip64Option get_UseZip64WhenSaving() const;
70 ASPOSECPP_SHARED_API void set_UseZip64WhenSaving(Zip64Option value);
71 ASPOSECPP_SHARED_API System::Nullable<bool> get_RequiresZip64() const;
72 ASPOSECPP_SHARED_API System::Nullable<bool> get_OutputUsedZip64() const;
73 ASPOSECPP_SHARED_API System::SharedPtr<System::Text::Encoding> get_ProvisionalAlternateEncoding() const;
74 ASPOSECPP_SHARED_API void set_ProvisionalAlternateEncoding(const System::SharedPtr<System::Text::Encoding>& value);
75
76 static ASPOSECPP_SHARED_API System::SharedPtr<System::Text::Encoding>& DefaultEncoding();
77
78 ASPOSECPP_SHARED_API System::SharedPtr<System::IO::TextWriter> get_StatusMessageTextWriter() const;
79 ASPOSECPP_SHARED_API void set_StatusMessageTextWriter(const System::SharedPtr<System::IO::TextWriter>& value);
80 ASPOSECPP_SHARED_API bool get_ForceNoCompression() const;
81 ASPOSECPP_SHARED_API void set_ForceNoCompression(bool value);
82 ASPOSECPP_SHARED_API System::String get_TempFileFolder() const;
83 ASPOSECPP_SHARED_API void set_TempFileFolder(const System::String& value);
84 ASPOSECPP_SHARED_API void set_Password(const System::String& value);
85 ASPOSECPP_SHARED_API ExtractExistingFileAction get_ExtractExistingFile() const;
86 ASPOSECPP_SHARED_API void set_ExtractExistingFile(ExtractExistingFileAction value);
87 ASPOSECPP_SHARED_API ZipErrorAction get_ZipErrorAction() const;
88 ASPOSECPP_SHARED_API void set_ZipErrorAction(ZipErrorAction value);
89 ASPOSECPP_SHARED_API EncryptionAlgorithm get_Encryption() const;
90 ASPOSECPP_SHARED_API void set_Encryption(EncryptionAlgorithm value);
91 ASPOSECPP_SHARED_API ReReadApprovalCallback get_WillReadTwiceOnInflation() const;
92 ASPOSECPP_SHARED_API void set_WillReadTwiceOnInflation(ReReadApprovalCallback value);
93 ASPOSECPP_SHARED_API WantCompressionCallback get_WantCompression() const;
94 ASPOSECPP_SHARED_API void set_WantCompression(WantCompressionCallback value);
95 ASPOSECPP_SHARED_API System::SharedPtr<System::Collections::Generic::List<System::String>> get_EntryFileNames() const;
97 ASPOSECPP_SHARED_API int get_Count() const;
98 ASPOSECPP_SHARED_API System::SharedPtr<System::IO::Stream> get_ReadStream();
99
100 ASPOSECPP_SHARED_API System::String ToString() const override;
101
102 ASPOSECPP_SHARED_API void Initialize(const System::String& fileName);
103
104 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> idx_get(int ix) const;
105 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> idx_set(int ix, const System::SharedPtr<ZipEntry>& value);
106 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> idx_get(const System::String& fileName) const;
107 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> idx_set(const System::String& fileName, const System::SharedPtr<ZipEntry>& value);
108
109 ASPOSECPP_SHARED_API void RemoveEntry(const System::SharedPtr<ZipEntry>& entry);
110 ASPOSECPP_SHARED_API void RemoveEntry(const System::String& fileName);
111 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddItem(const System::String& fileOrDirectoryName);
112 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddItem(const System::String& fileOrDirectoryName, const System::String& directoryPathInArchive);
113 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddFile(const System::String& fileName);
114 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddFile(const System::String& fileName, const System::String& directoryPathInArchive);
115 ASPOSECPP_SHARED_API void RemoveEntries(const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<ZipEntry>>>& entriesToRemove);
116 ASPOSECPP_SHARED_API void RemoveEntries(const System::SharedPtr<System::Collections::Generic::List<System::String>>& entriesToRemove);
117 ASPOSECPP_SHARED_API void AddFiles(const System::SharedPtr<System::Collections::Generic::List<System::String>>& fileNames);
118 ASPOSECPP_SHARED_API void UpdateFiles(const System::SharedPtr<System::Collections::Generic::List<System::String>>& fileNames);
119 ASPOSECPP_SHARED_API void AddFiles(const System::SharedPtr<System::Collections::Generic::List<System::String>>& fileNames, const System::String& directoryPathInArchive);
120 ASPOSECPP_SHARED_API void AddFiles(const System::SharedPtr<System::Collections::Generic::List<System::String>>& fileNames, bool preserveDirHierarchy, const System::String& directoryPathInArchive);
121 ASPOSECPP_SHARED_API void UpdateFiles(const System::SharedPtr<System::Collections::Generic::List<System::String>>& fileNames, const System::String& directoryPathInArchive);
122 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> UpdateFile(const System::String& fileName);
123 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> UpdateFile(const System::String& fileName, const System::String& directoryPathInArchive);
124 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> UpdateDirectory(const System::String& directoryName);
125 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> UpdateDirectory(const System::String& directoryName, const System::String& directoryPathInArchive);
126 ASPOSECPP_SHARED_API void UpdateItem(const System::String& itemName);
127 ASPOSECPP_SHARED_API void UpdateItem(const System::String& itemName, const System::String& directoryPathInArchive);
128 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddFileFromStream(const System::String& fileName, const System::String& directoryPathInArchive, const System::SharedPtr<System::IO::Stream>& stream);
129 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddFileStream(const System::String& fileName, const System::String& directoryPathInArchive, const System::SharedPtr<System::IO::Stream>& stream);
130 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddEntry(const System::String& fileName, const System::String& directoryPathInArchive, const System::String& content);
131 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddEntry(const System::String& fileName, const System::String& directoryPathInArchive, const System::String& content, const System::SharedPtr<System::Text::Encoding>& encoding);
132 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddEntry(const System::String& fileName, const System::String& directoryPathInArchive, System::SharedPtr<System::IO::Stream> stream);
133 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddFileFromString(const System::String& fileName, const System::String& directoryPathInArchive, const System::String& content);
134 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> UpdateEntry(const System::String& fileName, const System::String& directoryPathInArchive, const System::String& content);
135 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> UpdateEntry(const System::String& fileName, const System::String& directoryPathInArchive, const System::String& content, const System::SharedPtr<System::Text::Encoding>& encoding);
136 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> UpdateEntry(const System::String& fileName, const System::String& directoryPathInArchive, const System::SharedPtr<System::IO::Stream>& stream);
137 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> UpdateFileStream(const System::String& fileName, const System::String& directoryPathInArchive, const System::SharedPtr<System::IO::Stream>& stream);
138 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddEntry(const System::String& fileName, const System::String& directoryPathInArchive, const System::ArrayPtr<uint8_t>& byteContent);
139 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> UpdateEntry(const System::String& fileName, const System::String& directoryPathInArchive, const System::ArrayPtr<uint8_t>& byteContent);
140 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddDirectory(const System::String& directoryName);
141 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddDirectory(const System::String& directoryName, const System::String& directoryPathInArchive);
142 ASPOSECPP_SHARED_API System::SharedPtr<ZipEntry> AddDirectoryByName(const System::String& directoryNameInArchive);
143 static ASPOSECPP_SHARED_API bool CheckZip(const System::String& zipFileName);
144 static ASPOSECPP_SHARED_API bool CheckZip(const System::String& zipFileName, bool fixIfNecessary, System::SharedPtr<System::Collections::Generic::List<System::String>> &messages);
145 static ASPOSECPP_SHARED_API void FixZipDirectory(const System::String& zipFileName);
146
147 System::EventHandler<> SaveProgress;
148 System::EventHandler<> ReadProgress;
149 System::EventHandler<> ExtractProgress;
150 System::EventHandler<> AddProgress;
151 System::EventHandler<> ZipError;
152
153 ASPOSECPP_SHARED_API void ExtractAll(const System::String& path);
154 ASPOSECPP_SHARED_API void ExtractAll(const System::String& path, bool wantOverwrite);
155 ASPOSECPP_SHARED_API void ExtractAll(const System::String& path, ExtractExistingFileAction extractExistingFile);
156 ASPOSECPP_SHARED_API void Extract(const System::String& fileName);
157 ASPOSECPP_SHARED_API void Extract(const System::String& entryName, const System::String& directoryName);
158 ASPOSECPP_SHARED_API void Extract(const System::String& entryName, bool wantOverwrite);
159 ASPOSECPP_SHARED_API void Extract(const System::String& entryName, ExtractExistingFileAction extractExistingFile);
160 ASPOSECPP_SHARED_API void Extract(const System::String& entryName, const System::String& directoryName, bool wantOverwrite);
161 ASPOSECPP_SHARED_API void Extract(const System::String& entryName, const System::String& directoryName, ExtractExistingFileAction extractExistingFile);
162 ASPOSECPP_SHARED_API void Extract(const System::String& entryName, const System::SharedPtr<System::IO::Stream>& outputStream);
163 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::String& fileName);
164 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::String& fileName, System::EventHandler<> readProgress);
165 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::String& fileName, const System::SharedPtr<System::IO::TextWriter>& statusMessageWriter);
166 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::String& fileName, const System::SharedPtr<System::IO::TextWriter>& statusMessageWriter, System::EventHandler<> readProgress);
167 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::String& fileName, const System::SharedPtr<System::Text::Encoding>& encoding);
168 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::String& fileName, const System::SharedPtr<System::Text::Encoding>& encoding, System::EventHandler<> readProgress);
169 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::String& fileName, const System::SharedPtr<System::IO::TextWriter>& statusMessageWriter, const System::SharedPtr<System::Text::Encoding>& encoding);
170 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::String& fileName, const System::SharedPtr<System::IO::TextWriter>& statusMessageWriter, const System::SharedPtr<System::Text::Encoding>& encoding, System::EventHandler<> readProgress);
171 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::SharedPtr<System::IO::Stream>& zipStream);
172 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::SharedPtr<System::IO::Stream>& zipStream, bool enableRecoveryMode);
173 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::SharedPtr<System::IO::Stream>& zipStream, System::EventHandler<> readProgress);
174 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::SharedPtr<System::IO::Stream>& zipStream, const System::SharedPtr<System::IO::TextWriter>& statusMessageWriter);
175 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::SharedPtr<System::IO::Stream>& zipStream, const System::SharedPtr<System::IO::TextWriter>& statusMessageWriter, System::EventHandler<> readProgress);
176 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::SharedPtr<System::IO::Stream>& zipStream, const System::SharedPtr<System::Text::Encoding>& encoding);
177 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::SharedPtr<System::IO::Stream>& zipStream, const System::SharedPtr<System::Text::Encoding>& encoding, System::EventHandler<> readProgress);
178 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::SharedPtr<System::IO::Stream>& zipStream, const System::SharedPtr<System::IO::TextWriter>& statusMessageWriter, const System::SharedPtr<System::Text::Encoding>& encoding);
179 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::SharedPtr<System::IO::Stream>& zipStream, const System::SharedPtr<System::IO::TextWriter>& statusMessageWriter, const System::SharedPtr<System::Text::Encoding>& encoding, System::EventHandler<> readProgress);
180 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::ArrayPtr<uint8_t>& buffer);
181 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::ArrayPtr<uint8_t>& buffer, const System::SharedPtr<System::IO::TextWriter>& statusMessageWriter);
182 static ASPOSECPP_SHARED_API System::SharedPtr<ZipFile> Read(const System::ArrayPtr<uint8_t>& buffer, const System::SharedPtr<System::IO::TextWriter>& statusMessageWriter, const System::SharedPtr<System::Text::Encoding>& encoding);
183 static ASPOSECPP_SHARED_API bool IsZipFile(const System::String& fileName);
184 static ASPOSECPP_SHARED_API bool IsZipFile(const System::String& fileName, bool testExtract);
185 static ASPOSECPP_SHARED_API bool IsZipFile(System::SharedPtr<System::IO::Stream> stream, bool testExtract);
186 ASPOSECPP_SHARED_API void Save();
187 ASPOSECPP_SHARED_API void Save(const System::String& fileName);
188 ASPOSECPP_SHARED_API void Save(const System::SharedPtr<System::IO::Stream>& outputStream);
189
190 ASPOSECPP_SHARED_API void Dispose() const;
191
193 ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<System::SharedPtr<ZipEntry>>* virtualizeBeginIterator() override;
194 ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<System::SharedPtr<ZipEntry>>* virtualizeEndIterator() override;
195 ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<System::SharedPtr<ZipEntry>>* virtualizeBeginConstIterator() const override;
196 ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<System::SharedPtr<ZipEntry>>* virtualizeEndConstIterator() const override;
197
198protected:
200 ASPOSECPP_SHARED_API ~ZipFile() override;
201 ASPOSECPP_SHARED_API bool get_Verbose() const;
202
203 System::String _Password;
204 bool _inExtractAll;
205 Zip64Option _zip64;
206
207 ASPOSECPP_SHARED_API int64_t get_RelativeOffset();
208
209 ASPOSECPP_SHARED_API void NotifyEntryChanged();
210 ASPOSECPP_SHARED_API void Reset();
211 ASPOSECPP_SHARED_API bool OnSaveBlock(const System::SharedPtr<ZipEntry>& entry, int64_t bytesXferred, int64_t totalBytesToXfer);
212 ASPOSECPP_SHARED_API void OnReadBytes(const System::SharedPtr<ZipEntry>& entry);
213 ASPOSECPP_SHARED_API void OnReadEntry(bool before, const System::SharedPtr<ZipEntry>& entry);
214 ASPOSECPP_SHARED_API bool OnExtractBlock(const System::SharedPtr<ZipEntry>& entry, int64_t bytesWritten, int64_t totalBytesToWrite);
215 ASPOSECPP_SHARED_API bool OnSingleEntryExtract(const System::SharedPtr<ZipEntry>& entry, const System::String& path, bool before);
216 ASPOSECPP_SHARED_API bool OnExtractExisting(const System::SharedPtr<ZipEntry>& entry, const System::String& path);
217 ASPOSECPP_SHARED_API void AfterAddEntry(const System::SharedPtr<ZipEntry>& entry);
218 ASPOSECPP_SHARED_API bool OnZipErrorSaving(const System::SharedPtr<ZipEntry>& entry, const System::Exception& exc);
219 ASPOSECPP_SHARED_API void SeekFromOrigin(int64_t position);
220#ifdef ASPOSE_GET_SHARED_MEMBERS
221 ASPOSECPP_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
222#endif
223
224private:
225
226 enum class AddOrUpdateAction
227 {
228 AddOnly = 0,
229 AddOrUpdate
230 };
231
232 bool _FullScan;
233 int _CodecBufferSize;
234 bool _FlattenFoldersOnExtract;
235 CompressionLevel _CompressionLevel;
236 ExtractExistingFileAction _ExtractExistingFile;
237 ZipErrorAction _ZipErrorAction;
238 ReReadApprovalCallback _WillReadTwiceOnInflation;
239 WantCompressionCallback _WantCompression;
240
241 System::SharedPtr<System::IO::TextWriter> _StatusMessageTextWriter;
242 bool _CaseSensitiveRetrieval;
246 bool _ForceNoCompression;
247 System::String _name;
248 System::String _Comment;
249 bool _emitNtfsTimes;
250 bool _emitUnixTimes;
251 CompressionStrategy _Strategy;
252 int64_t _originPosition;
253 bool _fileAlreadyExists;
254 System::String _temporaryFileName;
255 bool _contentsChanged;
256 bool _hasBeenSaved;
257 System::String _TempFileFolder;
258 bool _ReadStreamIsOurs;
260 bool _saveOperationCanceled;
261 bool _extractOperationCanceled;
262 EncryptionAlgorithm _Encryption;
263 bool _JustSaved;
264 bool _NeedZip64CentralDirectory;
265 int64_t _locEndOfCDS;
266 System::Nullable<bool> _OutputUsesZip64;
267 System::SharedPtr<System::Text::Encoding> _provisionalAlternateEncoding;
268 int _BufferSize;
269 bool _RecoveryMode;
270
272 void set_WriteStream(const System::SharedPtr<System::IO::Stream>& value);
273
274 System::String get_ArchiveNameForEvent() const;
275
276 int64_t _lengthOfReadStream;
277
278 int64_t get_LengthOfReadStream();
279
280 void _InitInstance(const System::String& zipFileName, const System::SharedPtr<System::IO::TextWriter>& statusMessageWriter);
281 void InsureUniqueEntry(const System::SharedPtr<ZipEntry>& ze1) const;
282 System::SharedPtr<ZipEntry> AddOrUpdateDirectoryImpl(const System::String& directoryName, const System::String& rootDirectoryPathInArchive, AddOrUpdateAction action);
283 System::SharedPtr<ZipEntry> AddOrUpdateDirectoryImpl(const System::String& directoryName, const System::String& rootDirectoryPathInArchive, AddOrUpdateAction action, int level);
284 void OnSaveEntry(int current, const System::SharedPtr<ZipEntry>& entry, bool before);
285 void OnSaveEvent(ZipProgressEventType eventFlavor);
286 void OnSaveStarted();
287 void OnSaveCompleted();
288 void OnReadStarted();
289 void OnReadCompleted();
290 void OnExtractEntry(int current, bool before, const System::SharedPtr<ZipEntry>& currentEntry, const System::String& path);
291 void OnExtractAllCompleted(const System::String& path);
292 void OnExtractAllStarted(const System::String& path);
293 void OnAddStarted();
294 void OnAddCompleted();
295 void _InternalExtractAll(const System::String& path, bool overrideExtractExistingProperty);
296 static void ReadIntoInstance(const System::SharedPtr<ZipFile>& zf);
297 static void Zip64SeekToCentralDirectory(const System::SharedPtr<ZipFile>& zf);
298 static uint32_t VerifyBeginningOfZipFile(const System::SharedPtr<System::IO::Stream>& s);
299 static void ReadCentralDirectory(const System::SharedPtr<ZipFile>& zf);
300 static void ReadIntoInstance_Orig(const System::SharedPtr<ZipFile>& zf);
301 static void ReadCentralDirectoryFooter(const System::SharedPtr<ZipFile>& zf);
302 static void ReadZipFileComment(const System::SharedPtr<ZipFile>& zf);
303 static bool BlocksAreEqual(const System::ArrayPtr<uint8_t>& a, const System::ArrayPtr<uint8_t>& b);
304 void RemoveTempFile() const;
305 void CleanupAfterSaveOperation();
306 void WriteCentralDirectoryStructure(const System::SharedPtr<System::IO::Stream>& s);
307 int CountEntries() const;
308 void WriteZip64EndOfCentralDirectory(const System::SharedPtr<System::IO::Stream>& s, int64_t StartOfCentralDirectory, int64_t EndOfCentralDirectory) const;
309 void WriteCentralDirectoryFooter(const System::SharedPtr<System::IO::Stream>& s, int64_t StartOfCentralDirectory, int64_t EndOfCentralDirectory) const;
310
311};
312
313}} // namespace Aspose::Zip
314
315#endif // _aspose_zip_zip_file_h_
316
Interface of object providing enumerator on contained elements.
Definition: ienumerable.h:25
List forward declaration.
Definition: list.h:127
Template that represents wrapper of exceptions that are derived from Exception class.
Definition: exception.h:113
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
String class used across the library. Is a substitute for C# System.String when translating code....
Definition: string.h:122
@ Save
Refer to System::Drawing::Graphics::Save.
CompressionLevel
Specifies values that indicate whether a compression operation emphasizes speed or compression size.
Definition: compression_level.h:8
MulticastDelegate< void(System::SharedPtr< Object >, TEventArgs)> EventHandler
Represents a method that reacts to and processes an event. This type should be allocated on stack and...
Definition: eventhandler.h:16