Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ZipArchive() [4/4]

System.IO.Compression.ZipArchive.ZipArchive ( Stream stream,
ZipArchiveMode mode,
bool leaveOpen,
Encoding? entryNameEncoding )
inline

Definition at line 94 of file ZipArchive.cs.

95 {
96 if (stream == null)
97 {
98 throw new ArgumentNullException("stream");
99 }
101 Stream stream2 = null;
102 try
103 {
104 _backingStream = null;
105 switch (mode)
106 {
107 case ZipArchiveMode.Create:
108 if (!stream.CanWrite)
109 {
111 }
112 break;
113 case ZipArchiveMode.Read:
114 if (!stream.CanRead)
115 {
117 }
118 if (!stream.CanSeek)
119 {
121 stream2 = (stream = new MemoryStream());
123 stream.Seek(0L, SeekOrigin.Begin);
124 }
125 break;
126 case ZipArchiveMode.Update:
127 if (!stream.CanRead || !stream.CanWrite || !stream.CanSeek)
128 {
130 }
131 break;
132 default:
133 throw new ArgumentOutOfRangeException("mode");
134 }
135 _mode = mode;
136 if (mode == ZipArchiveMode.Create && !stream.CanSeek)
137 {
138 _archiveStream = new PositionPreservingWriteOnlyStreamWrapper(stream);
139 }
140 else
141 {
143 }
144 _archiveStreamOwner = null;
145 if (mode == ZipArchiveMode.Create)
146 {
147 _archiveReader = null;
148 }
149 else
150 {
151 _archiveReader = new BinaryReader(_archiveStream);
152 }
156 _readEntries = false;
159 _isDisposed = false;
161 _archiveComment = null;
162 switch (mode)
163 {
164 case ZipArchiveMode.Create:
165 _readEntries = true;
166 return;
167 case ZipArchiveMode.Read:
169 return;
170 }
171 if (_archiveStream.Length == 0L)
172 {
173 _readEntries = true;
174 return;
175 }
178 foreach (ZipArchiveEntry entry in _entries)
179 {
181 }
182 }
183 catch
184 {
185 stream2?.Dispose();
186 throw;
187 }
188 }
Dictionary< string, ZipArchiveEntry > _entriesDictionary
Definition ZipArchive.cs:21
ZipArchiveEntry _archiveStreamOwner
Definition ZipArchive.cs:11
ReadOnlyCollection< ZipArchiveEntry > _entriesCollection
Definition ZipArchive.cs:19
List< ZipArchiveEntry > _entries
Definition ZipArchive.cs:17
void CopyTo(Stream destination)
Definition Stream.cs:540
static string ReadModeCapabilities
Definition SR.cs:110
static string CreateModeCapabilities
Definition SR.cs:60
static string UpdateModeCapabilities
Definition SR.cs:126
Definition SR.cs:7

References System.IO.Compression.ZipArchive._archiveComment, System.IO.Compression.ZipArchive._archiveReader, System.IO.Compression.ZipArchive._archiveStream, System.IO.Compression.ZipArchive._archiveStreamOwner, System.IO.Compression.ZipArchive._backingStream, System.IO.Compression.ZipArchive._centralDirectoryStart, System.IO.Compression.ZipArchive._entries, System.IO.Compression.ZipArchive._entriesCollection, System.IO.Compression.ZipArchive._entriesDictionary, System.IO.Compression.ZipArchive._isDisposed, System.IO.Compression.ZipArchive._leaveOpen, System.IO.Compression.ZipArchive._mode, System.IO.Compression.ZipArchive._numberOfThisDisk, System.IO.Compression.ZipArchive._readEntries, System.IO.Stream.CopyTo(), System.SR.CreateModeCapabilities, System.IO.Compression.ZipArchive.EnsureCentralDirectoryRead(), System.IO.Compression.ZipArchive.EntryNameEncoding, System.L, System.IO.Stream.Length, System.IO.Compression.ZipArchive.ReadEndOfCentralDirectory(), System.SR.ReadModeCapabilities, System.stream, and System.SR.UpdateModeCapabilities.