mirror of
https://github.com/tsolomko/SWCompression.git
synced 2026-06-23 14:56:41 +00:00
443 lines
21 KiB
HTML
443 lines
21 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<title>ZipContainer Class Reference</title>
|
||
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
|
||
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
|
||
<meta charset="utf-8">
|
||
<script src="../js/jquery.min.js" defer></script>
|
||
<script src="../js/jazzy.js" defer></script>
|
||
|
||
<script src="../js/lunr.min.js" defer></script>
|
||
<script src="../js/typeahead.jquery.js" defer></script>
|
||
<script src="../js/jazzy.search.js" defer></script>
|
||
</head>
|
||
<body>
|
||
|
||
<a name="//apple_ref/swift/Class/ZipContainer" class="dashAnchor"></a>
|
||
|
||
<a title="ZipContainer Class Reference"></a>
|
||
|
||
<header class="header">
|
||
<p class="header-col header-col--primary">
|
||
<a class="header-link" href="../index.html">
|
||
SWCompression Docs
|
||
</a>
|
||
(100% documented)
|
||
</p>
|
||
|
||
<p class="header-col--secondary">
|
||
<form role="search" action="../search.json">
|
||
<input type="text" placeholder="Search documentation" data-typeahead>
|
||
</form>
|
||
</p>
|
||
|
||
<p class="header-col header-col--secondary">
|
||
<a class="header-link" href="https://github.com/tsolomko/SWCompression">
|
||
<img class="header-icon" src="../img/gh.png"/>
|
||
View on GitHub
|
||
</a>
|
||
</p>
|
||
|
||
</header>
|
||
|
||
<p class="breadcrumbs">
|
||
<a class="breadcrumb" href="../index.html">SWCompression Reference</a>
|
||
<img class="carat" src="../img/carat.png" />
|
||
ZipContainer Class Reference
|
||
</p>
|
||
|
||
<div class="content-wrapper">
|
||
<nav class="navigation">
|
||
<ul class="nav-groups">
|
||
<li class="nav-group-name">
|
||
<a class="nav-group-name-link" href="../Classes.html">Classes</a>
|
||
<ul class="nav-group-tasks">
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Classes/BZip2.html">BZip2</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Classes/Deflate.html">Deflate</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Classes/GzipArchive.html">GzipArchive</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Classes/LZMA.html">LZMA</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Classes/LZMA2.html">LZMA2</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Classes/XZArchive.html">XZArchive</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Classes/ZipContainer.html">ZipContainer</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Classes/ZlibArchive.html">ZlibArchive</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="nav-group-name">
|
||
<a class="nav-group-name-link" href="../Enums.html">Enums</a>
|
||
<ul class="nav-group-tasks">
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Enums/BZip2Error.html">BZip2Error</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Enums/DeflateError.html">DeflateError</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Enums/GzipError.html">GzipError</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Enums/LZMA2Error.html">LZMA2Error</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Enums/LZMAError.html">LZMAError</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Enums/XZError.html">XZError</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Enums/ZipError.html">ZipError</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Enums/ZlibError.html">ZlibError</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="nav-group-name">
|
||
<a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
|
||
<ul class="nav-group-tasks">
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Protocols/Archive.html">Archive</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Protocols/DecompressionAlgorithm.html">DecompressionAlgorithm</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="nav-group-name">
|
||
<a class="nav-group-name-link" href="../Structs.html">Structs</a>
|
||
<ul class="nav-group-tasks">
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Structs/GzipHeader.html">GzipHeader</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Structs/GzipHeader/CompressionMethod.html">– CompressionMethod</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Structs/GzipHeader/FileSystemType.html">– FileSystemType</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Structs/ZipEntry.html">ZipEntry</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Structs/ZlibHeader.html">ZlibHeader</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Structs/ZlibHeader/CompressionMethod.html">– CompressionMethod</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="../Structs/ZlibHeader/CompressionLevel.html">– CompressionLevel</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
<article class="main-content">
|
||
|
||
<section class="section">
|
||
<div class="section-content">
|
||
<h1>ZipContainer</h1>
|
||
<div class="declaration">
|
||
<div class="language">
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">ZipContainer</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
<p>Provides function to open ZIP archives (containers).</p>
|
||
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section">
|
||
<div class="section-content">
|
||
<div class="task-group">
|
||
<ul class="item-container">
|
||
<li class="item">
|
||
<div>
|
||
<code>
|
||
<a name="/s:vC13SWCompression12ZipContainer7entriesGSaVS_8ZipEntry_"></a>
|
||
<a name="//apple_ref/swift/Property/entries" class="dashAnchor"></a>
|
||
<a class="token" href="#/s:vC13SWCompression12ZipContainer7entriesGSaVS_8ZipEntry_">entries</a>
|
||
</code>
|
||
</div>
|
||
<div class="height-container">
|
||
<div class="pointer-container"></div>
|
||
<section class="section">
|
||
<div class="pointer"></div>
|
||
<div class="abstract">
|
||
<p>All file and directory entries found in ZIP archive (in its Central Directory).</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h4>Declaration</h4>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">private(set)</span> <span class="k">var</span> <span class="nv">entries</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Structs/ZipEntry.html">ZipEntry</a></span><span class="p">]</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="slightly-smaller">
|
||
<a href="https://github.com/tsolomko/SWCompression/tree/v2.3.0/Sources/ZipContainer.swift#L82">Show on GitHub</a>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</li>
|
||
<li class="item">
|
||
<div>
|
||
<code>
|
||
<a name="/s:FC13SWCompression12ZipContainercFzT13containerDataV10Foundation4Data_S0_"></a>
|
||
<a name="//apple_ref/swift/Method/init(containerData:)" class="dashAnchor"></a>
|
||
<a class="token" href="#/s:FC13SWCompression12ZipContainercFzT13containerDataV10Foundation4Data_S0_">init(containerData:)</a>
|
||
</code>
|
||
</div>
|
||
<div class="height-container">
|
||
<div class="pointer-container"></div>
|
||
<section class="section">
|
||
<div class="pointer"></div>
|
||
<div class="abstract">
|
||
<p>Tries to open ZIP archive and parse its Central Directory.
|
||
If parsing is successful then <code><a href="../Classes/ZipContainer.html#/s:vC13SWCompression12ZipContainer7entriesGSaVS_8ZipEntry_">entries</a></code> property will contain all directory or file entries found in archive.</p>
|
||
|
||
<div class="aside aside-important">
|
||
<p class="aside-title">Important</p>
|
||
<p>The order of entries is defined by ZIP archive and, particularly, creator of given ZIP container.
|
||
It is likely that directories will be encountered earlier than files stored in those directories,
|
||
but one SHOULD NOT assume that this is the case.</p>
|
||
|
||
</div>
|
||
|
||
<div class="aside aside-note">
|
||
<p class="aside-title">Note</p>
|
||
<p>Currently, there is no universal (platform and file system independent) method to determine if entry is a directory.
|
||
One can check this by looking at the size of entry’s data (it should be 0 for directory) AND
|
||
the last character of entry’s name (it should be ‘/’). If all of these is true then entry is likely to be a directory.</p>
|
||
|
||
</div>
|
||
|
||
<div class="aside aside-note">
|
||
<p class="aside-title">Note</p>
|
||
<p>Only ZIP containers complying to ISO/IEC 21320-1 standard are supported.</p>
|
||
|
||
</div>
|
||
|
||
<div class="aside aside-throws">
|
||
<p class="aside-title">Throws</p>
|
||
<p><code><a href="../Enums/ZipError.html">ZipError</a></code> or <code><a href="../Enums/DeflateError.html">DeflateError</a></code> depending on the type of inconsistency in data.
|
||
It may indicate that either the container is damaged or it might not be ZIP container or compressed with Deflate at all.</p>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h4>Declaration</h4>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="n">containerData</span> <span class="nv">data</span><span class="p">:</span> <span class="kt">Data</span><span class="p">)</span> <span class="k">throws</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<h4>Parameters</h4>
|
||
<table class="graybox">
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>
|
||
<em>containerData</em>
|
||
</code>
|
||
</td>
|
||
<td>
|
||
<div>
|
||
<p>Data of ZIP container.</p>
|
||
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="slightly-smaller">
|
||
<a href="https://github.com/tsolomko/SWCompression/tree/v2.3.0/Sources/ZipContainer.swift#L103-L132">Show on GitHub</a>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</li>
|
||
<li class="item">
|
||
<div>
|
||
<code>
|
||
<a name="/s:FC13SWCompression12ZipContainer4dataFzT3forVS_8ZipEntry_V10Foundation4Data"></a>
|
||
<a name="//apple_ref/swift/Method/data(for:)" class="dashAnchor"></a>
|
||
<a class="token" href="#/s:FC13SWCompression12ZipContainer4dataFzT3forVS_8ZipEntry_V10Foundation4Data">data(for:)</a>
|
||
</code>
|
||
</div>
|
||
<div class="height-container">
|
||
<div class="pointer-container"></div>
|
||
<section class="section">
|
||
<div class="pointer"></div>
|
||
<div class="abstract">
|
||
<p>Returns data associated with provided ZipEntry.</p>
|
||
|
||
<div class="aside aside-note">
|
||
<p class="aside-title">Note</p>
|
||
<p>Returned <code>Data</code> object with the size of 0 can either indicate that the entry is an empty file
|
||
or it is a directory.</p>
|
||
|
||
</div>
|
||
|
||
<div class="aside aside-throws">
|
||
<p class="aside-title">Throws</p>
|
||
<p><code><a href="../Enums/ZipError.html">ZipError</a></code> or <code><a href="../Enums/DeflateError.html">DeflateError</a></code> depending on the type of inconsistency in data.
|
||
An error can indicate that the container is damaged.</p>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h4>Declaration</h4>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">data</span><span class="p">(</span><span class="k">for</span> <span class="nv">zipEntry</span><span class="p">:</span> <span class="kt"><a href="../Structs/ZipEntry.html">ZipEntry</a></span><span class="p">)</span> <span class="k">throws</span> <span class="o">-></span> <span class="kt">Data</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<h4>Parameters</h4>
|
||
<table class="graybox">
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>
|
||
<em>zipEntry</em>
|
||
</code>
|
||
</td>
|
||
<td>
|
||
<div>
|
||
<p>file or directory entry from current container.</p>
|
||
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="slightly-smaller">
|
||
<a href="https://github.com/tsolomko/SWCompression/tree/v2.3.0/Sources/ZipContainer.swift#L145-L204">Show on GitHub</a>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</li>
|
||
<li class="item">
|
||
<div>
|
||
<code>
|
||
<a name="/s:ZFC13SWCompression12ZipContainer4openFzT13containerDataV10Foundation4Data_GSaT9entryNameSS9entryDataS2___"></a>
|
||
<a name="//apple_ref/swift/Method/open(containerData:)" class="dashAnchor"></a>
|
||
<a class="token" href="#/s:ZFC13SWCompression12ZipContainer4openFzT13containerDataV10Foundation4Data_GSaT9entryNameSS9entryDataS2___">open(containerData:)</a>
|
||
</code>
|
||
</div>
|
||
<div class="height-container">
|
||
<div class="pointer-container"></div>
|
||
<section class="section">
|
||
<div class="pointer"></div>
|
||
<div class="abstract">
|
||
<p>Processes ZIP archive (container) and returns an array of tuples <code>(String, Data)</code>.
|
||
First member of a tuple is entry’s name, second member is entry’s data.</p>
|
||
|
||
<div class="aside aside-important">
|
||
<p class="aside-title">Important</p>
|
||
<p>The order of entries is defined by ZIP archive and, particularly, creator of given ZIP container.
|
||
It is likely that directories will be encountered earlier than files stored in those directories,
|
||
but one SHOULD NOT assume that this is the case.</p>
|
||
|
||
</div>
|
||
|
||
<div class="aside aside-note">
|
||
<p class="aside-title">Note</p>
|
||
<p>Currently, there is no universal (platform and file system independent) method to determine if entry is a directory.
|
||
One can check this by looking at the size of entry’s data (it should be 0 for directory) AND
|
||
the last character of entry’s name (it should be ‘/’). If all of these is true then entry is likely to be a directory.</p>
|
||
|
||
</div>
|
||
|
||
<div class="aside aside-note">
|
||
<p class="aside-title">Note</p>
|
||
<p>Only ZIP containers complying to ISO/IEC 21320-1 standard are supported.</p>
|
||
|
||
</div>
|
||
|
||
<div class="aside aside-throws">
|
||
<p class="aside-title">Throws</p>
|
||
<p><code><a href="../Enums/ZipError.html">ZipError</a></code> or <code><a href="../Enums/DeflateError.html">DeflateError</a></code> depending on the type of inconsistency in data.
|
||
It may indicate that either the container is damaged or it might not be ZIP container or compressed with Deflate at all.</p>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h4>Declaration</h4>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">open</span><span class="p">(</span><span class="n">containerData</span> <span class="nv">data</span><span class="p">:</span> <span class="kt">Data</span><span class="p">)</span> <span class="k">throws</span> <span class="o">-></span> <span class="p">[(</span><span class="nv">entryName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">entryData</span><span class="p">:</span> <span class="kt">Data</span><span class="p">)]</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<h4>Parameters</h4>
|
||
<table class="graybox">
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>
|
||
<em>containerData</em>
|
||
</code>
|
||
</td>
|
||
<td>
|
||
<div>
|
||
<p>Data of ZIP container.</p>
|
||
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div>
|
||
<h4>Return Value</h4>
|
||
<p>Array of pairs (tuples) where first member is <code>entryName</code> and second member is <code>entryData</code>.</p>
|
||
|
||
</div>
|
||
<div class="slightly-smaller">
|
||
<a href="https://github.com/tsolomko/SWCompression/tree/v2.3.0/Sources/ZipContainer.swift#L227-L234">Show on GitHub</a>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
</article>
|
||
</div>
|
||
<section class="footer">
|
||
<p>© 2017 Timofey Solomko</p>
|
||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.5</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||
</section>
|
||
</body>
|
||
</div>
|
||
</html>
|