3#ifndef _aspose_zip_zip_entry_h_
4#define _aspose_zip_zip_entry_h_
6#include <system/text/encoding.h>
7#include <system/string.h>
8#include <system/shared_ptr.h>
9#include <system/object.h>
10#include <system/nullable.h>
11#include <system/io/stream.h>
12#include <system/io/file_attributes.h>
13#include <system/enum_helpers.h>
14#include <system/date_time.h>
15#include <system/text/regularexpressions/regex.h>
17#include "zip/events.h"
18#include "zip/zip_error_action.h"
19#include "zip/zip_entry_timestamp.h"
20#include "zip/zip_entry_source.h"
21#include "zip/extract_existing_file_action.h"
22#include "zip/encryption_algorithm.h"
24namespace Aspose {
namespace Zip {
26class CrcCalculatorStream;
27class ZipErrorEventArgs;
36 ASPOSECPP_SHARED_RTTI_INFO_DECL();
38 friend class ZipErrorEventArgs;
40 friend class ZipCrypto;
44 ASPOSECPP_SHARED_API ZipEntry();
53 ASPOSECPP_SHARED_API
bool get_EmitTimesInWindowsFormatWhenSaving()
const;
54 ASPOSECPP_SHARED_API
void set_EmitTimesInWindowsFormatWhenSaving(
bool value);
56 ASPOSECPP_SHARED_API
bool get_EmitTimesInUnixFormatWhenSaving()
const;
57 ASPOSECPP_SHARED_API
void set_EmitTimesInUnixFormatWhenSaving(
bool value);
59 ASPOSECPP_SHARED_API ZipEntryTimestamp get_Timestamp()
const;
64 ASPOSECPP_SHARED_API
bool get_ForceNoCompression()
const;
65 ASPOSECPP_SHARED_API
void set_ForceNoCompression(
bool value);
68 ASPOSECPP_SHARED_API
void set_FileName(
const System::String& value);
73 ASPOSECPP_SHARED_API
bool get_InputStreamWasJitProvided()
const;
75 ASPOSECPP_SHARED_API ZipEntrySource get_Source()
const;
77 ASPOSECPP_SHARED_API int16_t get_VersionNeeded()
const;
80 ASPOSECPP_SHARED_API
void set_Comment(
const System::String& value);
85 ASPOSECPP_SHARED_API int16_t get_BitField()
const;
87 ASPOSECPP_SHARED_API int16_t get_CompressionMethod()
const;
88 ASPOSECPP_SHARED_API
void set_CompressionMethod(int16_t value);
90 ASPOSECPP_SHARED_API int64_t get_CompressedSize()
const;
91 ASPOSECPP_SHARED_API int64_t get_UncompressedSize()
const;
93 ASPOSECPP_SHARED_API
double get_CompressionRatio()
const;
94 ASPOSECPP_SHARED_API
int get_Crc()
const;
98 ASPOSECPP_SHARED_API
bool get_IsDirectory()
const;
99 ASPOSECPP_SHARED_API
bool get_UsesEncryption()
const;
101 ASPOSECPP_SHARED_API EncryptionAlgorithm get_Encryption()
const;
102 ASPOSECPP_SHARED_API
void set_Encryption(EncryptionAlgorithm value);
104 ASPOSECPP_SHARED_API
void set_Password(
const System::String& value);
106 ASPOSECPP_SHARED_API
bool get_OverwriteOnExtract()
const;
107 ASPOSECPP_SHARED_API
void set_OverwriteOnExtract(
bool value);
109 ASPOSECPP_SHARED_API ExtractExistingFileAction get_ExtractExistingFile()
const;
110 ASPOSECPP_SHARED_API
void set_ExtractExistingFile(ExtractExistingFileAction value);
112 ASPOSECPP_SHARED_API ZipErrorAction get_ZipErrorAction()
const;
113 ASPOSECPP_SHARED_API
void set_ZipErrorAction(ZipErrorAction value);
115 ASPOSECPP_SHARED_API
bool get_IncludedInMostRecentSave()
const;
117 ASPOSECPP_SHARED_API ReReadApprovalCallback get_WillReadTwiceOnInflation()
const;
118 ASPOSECPP_SHARED_API
void set_WillReadTwiceOnInflation(ReReadApprovalCallback value);
120 ASPOSECPP_SHARED_API WantCompressionCallback get_WantCompression()
const;
121 ASPOSECPP_SHARED_API
void set_WantCompression(WantCompressionCallback value);
123 ASPOSECPP_SHARED_API
bool get_UseUnicodeAsNecessary()
const;
124 ASPOSECPP_SHARED_API
void set_UseUnicodeAsNecessary(
bool value);
131 ASPOSECPP_SHARED_API
bool get_IsText()
const;
132 ASPOSECPP_SHARED_API
void set_IsText(
bool value);
134 ASPOSECPP_SHARED_API
void set_KeepCrcStreamPos(
bool value);
141 ASPOSECPP_SHARED_API
void Extract();
142 ASPOSECPP_SHARED_API
void Extract(
bool overwrite);
143 ASPOSECPP_SHARED_API
void Extract(ExtractExistingFileAction extractExistingFile);
145 ASPOSECPP_SHARED_API
void Extract(
const System::String& baseDirectory);
146 ASPOSECPP_SHARED_API
void Extract(
const System::String& baseDirectory,
bool overwrite);
147 ASPOSECPP_SHARED_API
void Extract(
const System::String& baseDirectory, ExtractExistingFileAction extractExistingFile);
149 ASPOSECPP_SHARED_API
void ExtractWithPassword(
const System::String& password);
151 ASPOSECPP_SHARED_API
void ExtractWithPassword(
bool overwrite,
const System::String& password);
152 ASPOSECPP_SHARED_API
void ExtractWithPassword(ExtractExistingFileAction extractExistingFile,
const System::String& password);
154 ASPOSECPP_SHARED_API
void ExtractWithPassword(
const System::String& baseDirectory, ExtractExistingFileAction extractExistingFile,
const System::String& password);
172 ASPOSECPP_SHARED_API ~ZipEntry()
override;
174 ASPOSECPP_SHARED_API
int get_LengthOfCryptoHeaderBytes()
const;
175 ASPOSECPP_SHARED_API int64_t get_FileDataPosition();
180 int16_t _VersionNeeded;
182 int16_t _CompressionMethod;
184 int64_t _CompressedSize;
185 int64_t _CompressedFileDataSize;
186 int64_t _UncompressedSize;
191 int64_t __FileDataPosition;
192 int64_t _RelativeOffsetOfLocalHeader;
194 int _LengthOfTrailer;
196 ZipEntrySource _Source;
197 EncryptionAlgorithm _Encryption;
201 bool get_AttributesIndicateDirectory()
const;
207 ASPOSECPP_SHARED_API
void MarkAsDirectory();
208 ASPOSECPP_SHARED_API
void ResetDirEntry();
210 static ASPOSECPP_SHARED_API
bool IsNotValidZipDirEntrySig(
int signature);
211 ASPOSECPP_SHARED_API
void _SetTimes(
const System::String& fileOrDirectory,
bool isFile)
const;
215 ASPOSECPP_SHARED_API
int ProcessExtraField(int16_t extraFieldLength);
219#ifdef ASPOSE_GET_SHARED_MEMBERS
220 ASPOSECPP_SHARED_API
void GetSharedMembers(System::Object::shared_members_type& result)
const override;
225 int get_BufferSize()
const;
227 ExtractExistingFileAction _ExtractExistingFile;
228 ZipErrorAction _ZipErrorAction;
229 ReReadApprovalCallback _WillReadTwiceOnInflation;
230 WantCompressionCallback _WantCompression;
232 int get_LengthOfHeader();
235 bool _ntfsTimesAreSet;
238 bool _TrimVolumeFromFullyQualifiedPaths;
239 bool _ForceNoCompression;
244 bool _metadataChanged;
245 bool _restreamRequiredOnSave;
246 bool _sourceIsEncrypted;
247 bool _skippedDuringSave;
254 int64_t _TotalEntrySize;
255 bool _InputUsesZip64;
256 uint32_t _UnsupportedAlgorithmId;
259 bool _sourceWasJitProvided;
260 bool _ioOperationCanceled;
265 ZipEntryTimestamp _timestamp;
267 int16_t _VersionMadeBy;
268 int16_t _InternalFileAttrs;
269 int _ExternalFileAttrs;
270 int16_t _filenameLength;
271 int16_t _extraFieldLength;
272 int16_t _commentLength;
273 bool _keepCrcStreamPos;
277 bool get_IsDeflated()
const;
286 int16_t get_CompressionFlags()
const;
293 void OnExtractProgress(int64_t bytesWritten, int64_t totalBytesToWrite);
297 void OnWriteBlock(int64_t bytesXferred, int64_t totalBytesToXfer);
302 void _CheckRead(
int nbytes)
const;
304 void ValidateEncryption()
const;
305 void ValidateCompression()
const;
308 void ReadExtraField();
310 static bool IsNotValidSig(
int signature);
321 bool WantReadAgain()
const;
323 bool DefaultWantCompression()
const;
324 void FigureCompressionMethodForWriting(
int cycle);
327 void PrepSourceStream();
Represents a specific date and time value on the time continuum. This type should be allocated on sta...
Definition: date_time.h:50
Template that represents wrapper of exceptions that are derived from Exception class.
Definition: exception.h:113
Base class that enables using methods available for System.Object class in C#. All non-trivial classe...
Definition: object.h:62
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
Subclass of System::SmartPtr which sets itself to weak mode at construction. Please note that this cl...
Definition: weak_ptr.h:18
@ Create
Create a new file. If the file already exists, it is overwritten.
FileAttributes
Represents attributes of a directory or a file.
Definition: file_attributes.h:9
@ Write
Stream is for writing only.
@ Read
Stream is for reading only.