Files
SWCompression/docs/Classes/ZipContainer.html
T
2017-02-24 20:01:43 +03:00

443 lines
21 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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.2.1/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&rsquo;s data (it should be 0 for directory) AND
the last character of entry&rsquo;s name (it should be &lsquo;/&rsquo;). 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.2.1/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">-&gt;</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.2.1/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&rsquo;s name, second member is entry&rsquo;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&rsquo;s data (it should be 0 for directory) AND
the last character of entry&rsquo;s name (it should be &lsquo;/&rsquo;). 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">-&gt;</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.2.1/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.4</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</body>
</div>
</html>