<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US"> <head> <title>kio/kio: KArchive Class Reference (kio/kio)</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline DE v2.0" l gen true for "http://www.kde.org" r (nz 1 vz 1 lz 1 oz 1 cb 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.kde.org" r (n 0 s 0 v 0 l 0))' /> <meta name="trademark" content="KDE e.V." /> <meta name="description" content="K Desktop Environment Homepage, KDE.org" /> <meta name="MSSmartTagsPreventParsing" content="true" /> <meta name="robots" content="all" /> <link rel="shortcut icon" href="../../../favicon.ico" /> <link rel="stylesheet" media="screen" type="text/css" title="APIDOX" href="doxygen.css" /> </head> <body> <div id="nav_header_top" align="right"> <a href="#content" class="doNotDisplay" accesskey="2">Skip to main content ::</a> <a href="../../.."><img id="nav_header_logo" alt="Home" align="left" src="../../../kde_gear_64.png" border="0" /></a> <span class="doNotDisplay">::</span> <div id="nav_header_title" align="left">KDE API Reference</div> </div> <div id="nav_header_bottom" align="right"> <span class="doNotDisplay">:: <a href="#navigation" accesskey="5">Skip to Link Menu</a><br/></span> <div id="nav_header_bottom_right" style="text-align: left;"> / <a href="../../..">API Reference</a> / <a href="../../html/index.html">kio</a> / <a href=".">kio</a> </div> </div> <table id="main" border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td valign="top" class="menuheader" height="0"></td> <td id="contentcolumn" valign="top" rowspan="2" > <div id="content" style="padding-top: 0px;"><div style="width:100%; margin: 0px; padding: 0px;"> <a name="content"></a> <!-- Generated by Doxygen 1.7.4 --> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-types">Protected Types</a> | <a href="#pro-methods">Protected Member Functions</a> </div> <div class="headertitle"> <div class="title">KArchive Class Reference</div> </div> </div> <div class="contents"> <!-- doxytag: class="KArchive" --> <p><a class="el" href="classKArchive.html" title="KArchive is a base class for reading and writing archives.">KArchive</a> is a base class for reading and writing archives. <a href="classKArchive.html#details">More...</a></p> <p><code>#include <<a class="el" href="karchive_8h_source.html">karchive.h</a>></code></p> <div class="dynheader"> Inheritance diagram for KArchive:</div> <div class="dyncontent"> <div class="center"> <img src="classKArchive.png" usemap="#KArchive_map" alt=""/> <map id="KArchive_map" name="KArchive_map"> <area href="classKAr.html" title="KAr is a class for reading archives in ar format." alt="KAr" shape="rect" coords="0,56,65,80"/> <area href="classKTar.html" title="A class for reading / writing (optionally compressed) tar archives." alt="KTar" shape="rect" coords="75,56,140,80"/> <area href="classKZip.html" title="This class implements a kioslave to access zip files from KDE." alt="KZip" shape="rect" coords="150,56,215,80"/> </map> </div></div> <p><a href="classKArchive-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a2b7e12eb39e9aad18d696ecfa31af969">open</a> (int mode)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a434df272f32f3c9ca69134488804e9c9">close</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a32a576bf8c461db02f582966e8c9edc3">closeSucceeded</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#ace294a6f5bf3f46019ab59a346287149">isOpened</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a8b33f0b89ed4dbc81d03bb5498b91048">mode</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="qiodevice.html">QIODevice</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a42393a1c08518fcf8d8d956872be72ea">device</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classKArchiveDirectory.html">KArchiveDirectory</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a2fde221a994b790f0dad3799bdad24ad">directory</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a1e3b4d361c4b57fe8cb956a9b49a85e4">addLocalFile</a> (const <a class="elRef" href="qstring.html">QString</a> &fileName, const <a class="elRef" href="qstring.html">QString</a> &destName)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#ab5a2f90d4003664127e744d078162c34">addLocalDirectory</a> (const <a class="elRef" href="qstring.html">QString</a> &path, const <a class="elRef" href="qstring.html">QString</a> &destName)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#ae8a68fbcdc1daa3a125b5899676cecc1">writeDir</a> (const <a class="elRef" href="qstring.html">QString</a> &name, const <a class="elRef" href="qstring.html">QString</a> &user, const <a class="elRef" href="qstring.html">QString</a> &group)=0</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a34c27e0aa9dc810ba1d5771f504162b3">writeDir</a> (const <a class="elRef" href="qstring.html">QString</a> &name, const <a class="elRef" href="qstring.html">QString</a> &user, const <a class="elRef" href="qstring.html">QString</a> &group, mode_t perm, time_t atime, time_t mtime, time_t ctime)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a3798b8058f9f0639a2102e12722c95bb">writeSymLink</a> (const <a class="elRef" href="qstring.html">QString</a> &name, const <a class="elRef" href="qstring.html">QString</a> &target, const <a class="elRef" href="qstring.html">QString</a> &user, const <a class="elRef" href="qstring.html">QString</a> &group, mode_t perm, time_t atime, time_t mtime, time_t ctime)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a11a0ccee850c26cfcd835ec14c5c3d96">writeFile</a> (const <a class="elRef" href="qstring.html">QString</a> &name, const <a class="elRef" href="qstring.html">QString</a> &user, const <a class="elRef" href="qstring.html">QString</a> &group, uint size, const char *data)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a1b5fba2a65734a795d0d5109817fd651">writeFile</a> (const <a class="elRef" href="qstring.html">QString</a> &name, const <a class="elRef" href="qstring.html">QString</a> &user, const <a class="elRef" href="qstring.html">QString</a> &group, uint size, mode_t perm, time_t atime, time_t mtime, time_t ctime, const char *data)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a60b42cc93e203295157d6cff896dc225">prepareWriting</a> (const <a class="elRef" href="qstring.html">QString</a> &name, const <a class="elRef" href="qstring.html">QString</a> &user, const <a class="elRef" href="qstring.html">QString</a> &group, uint size)=0</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a2a44d91c957af94cd80111df993d022a">prepareWriting</a> (const <a class="elRef" href="qstring.html">QString</a> &name, const <a class="elRef" href="qstring.html">QString</a> &user, const <a class="elRef" href="qstring.html">QString</a> &group, uint size, mode_t perm, time_t atime, time_t mtime, time_t ctime)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#ac6cc6eb9cf66e19de86fc8b7631a35f3">writeData</a> (const char *data, uint size)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#aa25a334b408e743c4ac928597777a5d0">doneWriting</a> (uint size)=0</td></tr> <tr><td colspan="2"><h2><a name="pro-types"></a> Protected Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <br/>   <b>VIRTUAL_WRITE_DATA</b> = 1, <b>VIRTUAL_WRITE_SYMLINK</b>, <b>VIRTUAL_WRITE_DIR</b>, <b>VIRTUAL_WRITE_FILE</b>, <br/>   <b>VIRTUAL_PREPARE_WRITING</b> <br/> }</td></tr> <tr><td colspan="2"><h2><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a3efbb71ada0630d90c5af53fedce9b19">KArchive</a> (<a class="elRef" href="qiodevice.html">QIODevice</a> *dev)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#aa31f2331fa3be7abe14811eca7f2e54b">openArchive</a> (int mode)=0</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a52fa0982c4acaf9dcca8df09749e99a0">closeArchive</a> ()=0</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classKArchiveDirectory.html">KArchiveDirectory</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#a218da40618b5ea5623656d3dbf3d9ecc">rootDir</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKArchiveDirectory.html">KArchiveDirectory</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKArchive.html#aa5dfd148c5c870da8a2330d0371e3d6e">findOrCreate</a> (const <a class="elRef" href="qstring.html">QString</a> &path)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af39343456c9c458230546b64ffc66a31"></a><!-- doxytag: member="KArchive::setDevice" ref="af39343456c9c458230546b64ffc66a31" args="(QIODevice *dev)" --> void </td><td class="memItemRight" valign="bottom"><b>setDevice</b> (<a class="elRef" href="qiodevice.html">QIODevice</a> *dev)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae12a8b556703e189b9e2ebc886a18319"></a><!-- doxytag: member="KArchive::setRootDir" ref="ae12a8b556703e189b9e2ebc886a18319" args="(KArchiveDirectory *rootDir)" --> void </td><td class="memItemRight" valign="bottom"><b>setRootDir</b> (<a class="el" href="classKArchiveDirectory.html">KArchiveDirectory</a> *rootDir)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a480f2e659a263c034300627135f6fb59"></a><!-- doxytag: member="KArchive::virtual_hook" ref="a480f2e659a263c034300627135f6fb59" args="(int id, void *data)" --> virtual void </td><td class="memItemRight" valign="bottom"><b>virtual_hook</b> (int id, void *data)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada3e82fc9da5f893e3353ab6aeb443aa"></a><!-- doxytag: member="KArchive::prepareWriting_impl" ref="ada3e82fc9da5f893e3353ab6aeb443aa" args="(const QString &name, const QString &user, const QString &group, uint size, mode_t perm, time_t atime, time_t mtime, time_t ctime)" --> bool </td><td class="memItemRight" valign="bottom"><b>prepareWriting_impl</b> (const <a class="elRef" href="qstring.html">QString</a> &name, const <a class="elRef" href="qstring.html">QString</a> &user, const <a class="elRef" href="qstring.html">QString</a> &group, uint size, mode_t perm, time_t atime, time_t mtime, time_t ctime)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0da01176bb7aa3affea778f184d6bd03"></a><!-- doxytag: member="KArchive::writeFile_impl" ref="a0da01176bb7aa3affea778f184d6bd03" args="(const QString &name, const QString &user, const QString &group, uint size, mode_t perm, time_t atime, time_t mtime, time_t ctime, const char *data)" --> bool </td><td class="memItemRight" valign="bottom"><b>writeFile_impl</b> (const <a class="elRef" href="qstring.html">QString</a> &name, const <a class="elRef" href="qstring.html">QString</a> &user, const <a class="elRef" href="qstring.html">QString</a> &group, uint size, mode_t perm, time_t atime, time_t mtime, time_t ctime, const char *data)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f60e1f1d38232c80cf3a0a7264a476d"></a><!-- doxytag: member="KArchive::writeDir_impl" ref="a5f60e1f1d38232c80cf3a0a7264a476d" args="(const QString &name, const QString &user, const QString &group, mode_t perm, time_t atime, time_t mtime, time_t ctime)" --> bool </td><td class="memItemRight" valign="bottom"><b>writeDir_impl</b> (const <a class="elRef" href="qstring.html">QString</a> &name, const <a class="elRef" href="qstring.html">QString</a> &user, const <a class="elRef" href="qstring.html">QString</a> &group, mode_t perm, time_t atime, time_t mtime, time_t ctime)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add53d7944c040a99064fb57681215267"></a><!-- doxytag: member="KArchive::writeSymLink_impl" ref="add53d7944c040a99064fb57681215267" args="(const QString &name, const QString &target, const QString &user, const QString &group, mode_t perm, time_t atime, time_t mtime, time_t ctime)" --> bool </td><td class="memItemRight" valign="bottom"><b>writeSymLink_impl</b> (const <a class="elRef" href="qstring.html">QString</a> &name, const <a class="elRef" href="qstring.html">QString</a> &target, const <a class="elRef" href="qstring.html">QString</a> &user, const <a class="elRef" href="qstring.html">QString</a> &group, mode_t perm, time_t atime, time_t mtime, time_t ctime)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a47a1e6067a27daa8ba6b2494b1b7927a"></a><!-- doxytag: member="KArchive::writeData_impl" ref="a47a1e6067a27daa8ba6b2494b1b7927a" args="(const char *data, uint size)" --> bool </td><td class="memItemRight" valign="bottom"><b>writeData_impl</b> (const char *data, uint size)</td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p><a class="el" href="classKArchive.html" title="KArchive is a base class for reading and writing archives.">KArchive</a> is a base class for reading and writing archives. </p> <p>generic class for reading/writing archives </p> <dl class="author"><dt><b>Author:</b></dt><dd>David Faure <<a href="mailto:faure@kde.org">faure@kde.org</a>> </dd></dl> <p>Definition at line <a class="el" href="karchive_8h_source.html#l00042">42</a> of file <a class="el" href="karchive_8h_source.html">karchive.h</a>.</p> </div><hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a3efbb71ada0630d90c5af53fedce9b19"></a><!-- doxytag: member="KArchive::KArchive" ref="a3efbb71ada0630d90c5af53fedce9b19" args="(QIODevice *dev)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">KArchive::KArchive </td> <td>(</td> <td class="paramtype"><a class="elRef" href="qiodevice.html">QIODevice</a> * </td> <td class="paramname"><em>dev</em></td><td>)</td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Base constructor (protected since this is a pure virtual class). </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dev</td><td>the I/O device where the archive reads its data Note that this can be a file, but also a data buffer, a compression filter, etc. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00075">75</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="ab5a2f90d4003664127e744d078162c34"></a><!-- doxytag: member="KArchive::addLocalDirectory" ref="ab5a2f90d4003664127e744d078162c34" args="(const QString &path, const QString &destName)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool KArchive::addLocalDirectory </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>destName</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Writes a local directory into the archive, including all its contents, recursively. </p> <p>Calls addLocalFile for each file to be added.</p> <p>Since KDE 3.2 it will also add a <code>path</code> that is a symbolic link to a directory. The symbolic link will be dereferenced and the content of the directory it is pointing to added recursively. However, symbolic links *under* <code>path</code> will be stored as is. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">path</td><td>full path to an existing local directory, to be added to the archive. </td></tr> <tr><td class="paramname">destName</td><td>the resulting name (or relative path) of the file in the archive. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00200">200</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <a class="anchor" id="a1e3b4d361c4b57fe8cb956a9b49a85e4"></a><!-- doxytag: member="KArchive::addLocalFile" ref="a1e3b4d361c4b57fe8cb956a9b49a85e4" args="(const QString &fileName, const QString &destName)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool KArchive::addLocalFile </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>fileName</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>destName</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Writes a local file into the archive. </p> <p>The main difference with writeFile, is that this method minimizes memory usage, by not loading the whole file into memory in one go.</p> <p>If <code>fileName</code> is a symbolic link, it will be written as is, i. e. it will not be resolved before. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">fileName</td><td>full path to an existing local file, to be added to the archive. </td></tr> <tr><td class="paramname">destName</td><td>the resulting name (or relative path) of the file in the archive. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00136">136</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <a class="anchor" id="a434df272f32f3c9ca69134488804e9c9"></a><!-- doxytag: member="KArchive::close" ref="a434df272f32f3c9ca69134488804e9c9" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void KArchive::close </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Closes the archive. </p> <p>Inherited classes might want to reimplement closeArchive instead.</p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classKArchive.html#a2b7e12eb39e9aad18d696ecfa31af969" title="Opens the archive for reading or writing.">open</a> </dd></dl> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00108">108</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <a class="anchor" id="a52fa0982c4acaf9dcca8df09749e99a0"></a><!-- doxytag: member="KArchive::closeArchive" ref="a52fa0982c4acaf9dcca8df09749e99a0" args="()=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool KArchive::closeArchive </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [protected, pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Closes the archive. </p> <p>Called by close. </p> <p>Implemented in <a class="el" href="classKAr.html#a0b6c10502663df4881d376e110f0bcdd">KAr</a>, <a class="el" href="classKTar.html#a9287a3f9a2dd56821559a7f87c078f9c">KTar</a>, and <a class="el" href="classKZip.html#a4e360481897297a16fe4cda21caf3db1">KZip</a>.</p> </div> </div> <a class="anchor" id="a32a576bf8c461db02f582966e8c9edc3"></a><!-- doxytag: member="KArchive::closeSucceeded" ref="a32a576bf8c461db02f582966e8c9edc3" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool KArchive::closeSucceeded </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Use to check if close had any problem. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>true if close succeded without problems </dd></dl> <dl class="since"><dt><b>Since:</b></dt><dd>3.5 </dd></dl> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00124">124</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <a class="anchor" id="a42393a1c08518fcf8d8d956872be72ea"></a><!-- doxytag: member="KArchive::device" ref="a42393a1c08518fcf8d8d956872be72ea" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="elRef" href="qiodevice.html">QIODevice</a>* KArchive::device </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The underlying device. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the underlying device. </dd></dl> <p>Definition at line <a class="el" href="karchive_8h_source.html#l00096">96</a> of file <a class="el" href="karchive_8h_source.html">karchive.h</a>.</p> </div> </div> <a class="anchor" id="a2fde221a994b790f0dad3799bdad24ad"></a><!-- doxytag: member="KArchive::directory" ref="a2fde221a994b790f0dad3799bdad24ad" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classKArchiveDirectory.html">KArchiveDirectory</a> * KArchive::directory </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>If an archive is opened for reading, then the contents of the archive can be accessed via this function. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the directory of the archive </dd></dl> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00129">129</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <a class="anchor" id="aa25a334b408e743c4ac928597777a5d0"></a><!-- doxytag: member="KArchive::doneWriting" ref="aa25a334b408e743c4ac928597777a5d0" args="(uint size)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool KArchive::doneWriting </td> <td>(</td> <td class="paramtype">uint </td> <td class="paramname"><em>size</em></td><td>)</td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Call doneWriting after writing the data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">size</td><td>the size of the file </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classKArchive.html#a60b42cc93e203295157d6cff896dc225" title="Here's another way of writing a file into an archive: Call prepareWriting, then call writeData() as m...">prepareWriting()</a> </dd></dl> <p>Implemented in <a class="el" href="classKAr.html#a98a7800f9f3901cdaee3a9da428b89f2">KAr</a>, <a class="el" href="classKTar.html#a680c42d319226a5c517fa7ac77b939b6">KTar</a>, and <a class="el" href="classKZip.html#ae97699138940349b108a8a6271a0f0a1">KZip</a>.</p> </div> </div> <a class="anchor" id="aa5dfd148c5c870da8a2330d0371e3d6e"></a><!-- doxytag: member="KArchive::findOrCreate" ref="aa5dfd148c5c870da8a2330d0371e3d6e" args="(const QString &path)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classKArchiveDirectory.html">KArchiveDirectory</a> * KArchive::findOrCreate </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>path</em></td><td>)</td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Ensures that <code>path</code> exists, create otherwise. </p> <p>This handles e.g. tar files missing directory entries, like mico-2.3.0.tar.gz :) </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">path</td><td>the path of the directory </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the directory with the given <code>path</code> </dd></dl> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00383">383</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <a class="anchor" id="ace294a6f5bf3f46019ab59a346287149"></a><!-- doxytag: member="KArchive::isOpened" ref="ace294a6f5bf3f46019ab59a346287149" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool KArchive::isOpened </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Checks whether the archive is open. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>true if the archive is opened </dd></dl> <p>Definition at line <a class="el" href="karchive_8h_source.html#l00083">83</a> of file <a class="el" href="karchive_8h_source.html">karchive.h</a>.</p> </div> </div> <a class="anchor" id="a8b33f0b89ed4dbc81d03bb5498b91048"></a><!-- doxytag: member="KArchive::mode" ref="a8b33f0b89ed4dbc81d03bb5498b91048" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int KArchive::mode </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the mode in which the archive was opened. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the mode in which the archive was opened (IO_ReadOnly or IO_WriteOnly) </dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classKArchive.html#a2b7e12eb39e9aad18d696ecfa31af969" title="Opens the archive for reading or writing.">open()</a> </dd></dl> <p>Definition at line <a class="el" href="karchive_8h_source.html#l00090">90</a> of file <a class="el" href="karchive_8h_source.html">karchive.h</a>.</p> </div> </div> <a class="anchor" id="a2b7e12eb39e9aad18d696ecfa31af969"></a><!-- doxytag: member="KArchive::open" ref="a2b7e12eb39e9aad18d696ecfa31af969" args="(int mode)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool KArchive::open </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>mode</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Opens the archive for reading or writing. </p> <p>Inherited classes might want to reimplement openArchive instead. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">mode</td><td>may be IO_ReadOnly or IO_WriteOnly </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classKArchive.html#a434df272f32f3c9ca69134488804e9c9" title="Closes the archive.">close</a> </dd></dl> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00091">91</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <a class="anchor" id="aa31f2331fa3be7abe14811eca7f2e54b"></a><!-- doxytag: member="KArchive::openArchive" ref="aa31f2331fa3be7abe14811eca7f2e54b" args="(int mode)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool KArchive::openArchive </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>mode</em></td><td>)</td> <td><code> [protected, pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Opens an archive for reading or writing. </p> <p>Called by open. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">mode</td><td>may be IO_ReadOnly or IO_WriteOnly </td></tr> </table> </dd> </dl> <p>Implemented in <a class="el" href="classKAr.html#a2d27b97e5524986a6ab37a2ef4c82fe3">KAr</a>, <a class="el" href="classKTar.html#a74a40c20818f148211d5480c79567d66">KTar</a>, and <a class="el" href="classKZip.html#a974c7043300d0c25f45619eb6edbf413">KZip</a>.</p> </div> </div> <a class="anchor" id="a2a44d91c957af94cd80111df993d022a"></a><!-- doxytag: member="KArchive::prepareWriting" ref="a2a44d91c957af94cd80111df993d022a" args="(const QString &name, const QString &user, const QString &group, uint size, mode_t perm, time_t atime, time_t mtime, time_t ctime)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool KArchive::prepareWriting </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>user</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>group</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint </td> <td class="paramname"><em>size</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">mode_t </td> <td class="paramname"><em>perm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>atime</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>mtime</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>ctime</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Here's another way of writing a file into an archive: Call prepareWriting, then call <a class="el" href="classKArchive.html#ac6cc6eb9cf66e19de86fc8b7631a35f3" title="Write data into the current file - to be called after calling prepareWriting.">writeData()</a> as many times as wanted then call doneWriting( totalSize ). </p> <p>For tar.gz files, you need to know the size before hand, it is needed in the header! For zip files, size isn't used.</p> <p>This method also allows some file metadata to be set. However, depending on the archive type not all metadata might be regarded. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">name</td><td>the name of the file </td></tr> <tr><td class="paramname">user</td><td>the user that owns the file </td></tr> <tr><td class="paramname">group</td><td>the group that owns the file </td></tr> <tr><td class="paramname">size</td><td>the size of the file </td></tr> <tr><td class="paramname">perm</td><td>permissions of the file </td></tr> <tr><td class="paramname">atime</td><td>time the file was last accessed </td></tr> <tr><td class="paramname">mtime</td><td>modification time of the file </td></tr> <tr><td class="paramname">ctime</td><td>creation time of the file </td></tr> </table> </dd> </dl> <dl class="since"><dt><b>Since:</b></dt><dd>3.2 </dd></dl> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000007">Todo:</a></b></dt><dd>TODO(BIC): make this virtual. For now use virtual hook. </dd></dl> <p>Reimplemented in <a class="el" href="classKTar.html#a7821bca5ab5c0bb35220577ac5522727">KTar</a>, and <a class="el" href="classKZip.html#a86336aa3d3023c5e7b8af641ab983070">KZip</a>.</p> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00235">235</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <a class="anchor" id="a60b42cc93e203295157d6cff896dc225"></a><!-- doxytag: member="KArchive::prepareWriting" ref="a60b42cc93e203295157d6cff896dc225" args="(const QString &name, const QString &user, const QString &group, uint size)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool KArchive::prepareWriting </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>user</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>group</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint </td> <td class="paramname"><em>size</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Here's another way of writing a file into an archive: Call prepareWriting, then call <a class="el" href="classKArchive.html#ac6cc6eb9cf66e19de86fc8b7631a35f3" title="Write data into the current file - to be called after calling prepareWriting.">writeData()</a> as many times as wanted then call doneWriting( totalSize ). </p> <p>For tar.gz files, you need to know the size before hand, since it is needed in the header. For zip files, size isn't used.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">name</td><td>the name of the file </td></tr> <tr><td class="paramname">user</td><td>the user that owns the file </td></tr> <tr><td class="paramname">group</td><td>the group that owns the file </td></tr> <tr><td class="paramname">size</td><td>the size of the file</td></tr> </table> </dd> </dl> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000006">Todo:</a></b></dt><dd>TODO(BIC): make this a thin non-virtual wrapper around prepareWriting(name,user,group,size,perm,atime,mtime,ctime) or eliminate it. </dd></dl> <p>Implemented in <a class="el" href="classKAr.html#a932b01a896d5b23e137d0ab961e6345c">KAr</a>, <a class="el" href="classKTar.html#adae52467799ccc1cdfb096f1fb468633">KTar</a>, and <a class="el" href="classKZip.html#aced454a772ae28b5a68ca59b874cdef4">KZip</a>.</p> </div> </div> <a class="anchor" id="a218da40618b5ea5623656d3dbf3d9ecc"></a><!-- doxytag: member="KArchive::rootDir" ref="a218da40618b5ea5623656d3dbf3d9ecc" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classKArchiveDirectory.html">KArchiveDirectory</a> * KArchive::rootDir </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Retrieves or create the root directory. </p> <p>The default implementation assumes that <a class="el" href="classKArchive.html#aa31f2331fa3be7abe14811eca7f2e54b" title="Opens an archive for reading or writing.">openArchive()</a> did the parsing, so it creates a dummy rootdir if none was set (write mode, or no '/' in the archive). Reimplement this to provide parsing/listing on demand. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the root directory </dd></dl> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00368">368</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <a class="anchor" id="ac6cc6eb9cf66e19de86fc8b7631a35f3"></a><!-- doxytag: member="KArchive::writeData" ref="ac6cc6eb9cf66e19de86fc8b7631a35f3" args="(const char *data, uint size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool KArchive::writeData </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint </td> <td class="paramname"><em>size</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Write data into the current file - to be called after calling prepareWriting. </p> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000008">Todo:</a></b></dt><dd>TODO(BIC) make virtual.</dd></dl> <p>For now virtual_hook allows reimplementing it. </p> <p>Reimplemented in <a class="el" href="classKZip.html#a3ef7246739d81c3f5a6fdb088913c23c">KZip</a>.</p> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00353">353</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <a class="anchor" id="ae8a68fbcdc1daa3a125b5899676cecc1"></a><!-- doxytag: member="KArchive::writeDir" ref="ae8a68fbcdc1daa3a125b5899676cecc1" args="(const QString &name, const QString &user, const QString &group)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool KArchive::writeDir </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>user</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>group</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>If an archive is opened for writing then you can add new directories using this function. </p> <p><a class="el" href="classKArchive.html" title="KArchive is a base class for reading and writing archives.">KArchive</a> won't write one directory twice.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">name</td><td>the name of the directory </td></tr> <tr><td class="paramname">user</td><td>the user that owns the directory </td></tr> <tr><td class="paramname">group</td><td>the group that owns the directory</td></tr> </table> </dd> </dl> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>TODO(BIC): make this a thin wrapper around writeDir(name,user,group,perm,atime,mtime,ctime) or eliminate it </dd></dl> <p>Implemented in <a class="el" href="classKAr.html#a96af0a42abc26bb4a0d82d0e85cb32e0">KAr</a>, <a class="el" href="classKTar.html#a400a95909477dc244119cf205fa6f810">KTar</a>, and <a class="el" href="classKZip.html#a50ffe0a65d6a9bc415472dd23f89b70a">KZip</a>.</p> </div> </div> <a class="anchor" id="a34c27e0aa9dc810ba1d5771f504162b3"></a><!-- doxytag: member="KArchive::writeDir" ref="a34c27e0aa9dc810ba1d5771f504162b3" args="(const QString &name, const QString &user, const QString &group, mode_t perm, time_t atime, time_t mtime, time_t ctime)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool KArchive::writeDir </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>user</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>group</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">mode_t </td> <td class="paramname"><em>perm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>atime</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>mtime</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>ctime</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>If an archive is opened for writing then you can add new directories using this function. </p> <p><a class="el" href="classKArchive.html" title="KArchive is a base class for reading and writing archives.">KArchive</a> won't write one directory twice.</p> <p>This method also allows some file metadata to be set. However, depending on the archive type not all metadata might be regarded. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">name</td><td>the name of the directory </td></tr> <tr><td class="paramname">user</td><td>the user that owns the directory </td></tr> <tr><td class="paramname">group</td><td>the group that owns the directory </td></tr> <tr><td class="paramname">perm</td><td>permissions of the directory </td></tr> <tr><td class="paramname">atime</td><td>time the file was last accessed </td></tr> <tr><td class="paramname">mtime</td><td>modification time of the file </td></tr> <tr><td class="paramname">ctime</td><td>creation time of the file </td></tr> </table> </dd> </dl> <dl class="since"><dt><b>Since:</b></dt><dd>3.2 </dd></dl> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd>TODO(BIC): make this virtual. For now use virtual hook </dd></dl> <p>Reimplemented in <a class="el" href="classKTar.html#a4da59bfdb20847de10eddde558211076">KTar</a>.</p> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00304">304</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <a class="anchor" id="a11a0ccee850c26cfcd835ec14c5c3d96"></a><!-- doxytag: member="KArchive::writeFile" ref="a11a0ccee850c26cfcd835ec14c5c3d96" args="(const QString &name, const QString &user, const QString &group, uint size, const char *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool KArchive::writeFile </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>user</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>group</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint </td> <td class="paramname"><em>size</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>data</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>If an archive is opened for writing then you can add a new file using this function. </p> <p>If the file name is for example "mydir/test1" then the directory "mydir" is automatically appended first if that did not happen yet. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">name</td><td>the name of the file </td></tr> <tr><td class="paramname">user</td><td>the user that owns the file </td></tr> <tr><td class="paramname">group</td><td>the group that owns the file </td></tr> <tr><td class="paramname">size</td><td>the size of the file </td></tr> <tr><td class="paramname">data</td><td>the data to write (<code>size</code> bytes) </td></tr> </table> </dd> </dl> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd>TODO(BIC): make this a thin non-virtual wrapper around writeFile(name,user,group,size,perm,atime,mtime,ctime,data) </dd></dl> <p>Reimplemented in <a class="el" href="classKZip.html#aa7475947dea23ca81926c5f8d6f86182">KZip</a>.</p> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00228">228</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <a class="anchor" id="a1b5fba2a65734a795d0d5109817fd651"></a><!-- doxytag: member="KArchive::writeFile" ref="a1b5fba2a65734a795d0d5109817fd651" args="(const QString &name, const QString &user, const QString &group, uint size, mode_t perm, time_t atime, time_t mtime, time_t ctime, const char *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool KArchive::writeFile </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>user</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>group</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint </td> <td class="paramname"><em>size</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">mode_t </td> <td class="paramname"><em>perm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>atime</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>mtime</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>ctime</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>data</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>If an archive is opened for writing then you can add a new file using this function. </p> <p>If the file name is for example "mydir/test1" then the directory "mydir" is automatically appended first if that did not happen yet.</p> <p>This method also allows some file metadata to be set. However, depending on the archive type not all metadata might be regarded. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">name</td><td>the name of the file </td></tr> <tr><td class="paramname">user</td><td>the user that owns the file </td></tr> <tr><td class="paramname">group</td><td>the group that owns the file </td></tr> <tr><td class="paramname">size</td><td>the size of the file </td></tr> <tr><td class="paramname">perm</td><td>permissions of the file </td></tr> <tr><td class="paramname">atime</td><td>time the file was last accessed </td></tr> <tr><td class="paramname">mtime</td><td>modification time of the file </td></tr> <tr><td class="paramname">ctime</td><td>creation time of the file </td></tr> <tr><td class="paramname">data</td><td>the data to write (<code>size</code> bytes) </td></tr> </table> </dd> </dl> <dl class="since"><dt><b>Since:</b></dt><dd>3.2 </dd></dl> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000005">Todo:</a></b></dt><dd>TODO(BIC): make virtual. For now use virtual hook </dd></dl> <p>Reimplemented in <a class="el" href="classKZip.html#aa706b1abdd999e282194ecc4798e4482">KZip</a>.</p> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00259">259</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <a class="anchor" id="a3798b8058f9f0639a2102e12722c95bb"></a><!-- doxytag: member="KArchive::writeSymLink" ref="a3798b8058f9f0639a2102e12722c95bb" args="(const QString &name, const QString &target, const QString &user, const QString &group, mode_t perm, time_t atime, time_t mtime, time_t ctime)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool KArchive::writeSymLink </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>target</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>user</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="qstring.html">QString</a> & </td> <td class="paramname"><em>group</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">mode_t </td> <td class="paramname"><em>perm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>atime</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>mtime</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"><em>ctime</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Writes a symbolic link to the archive if the archive must be opened for writing. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">name</td><td>name of symbolic link </td></tr> <tr><td class="paramname">target</td><td>target of symbolic link </td></tr> <tr><td class="paramname">user</td><td>the user that owns the directory </td></tr> <tr><td class="paramname">group</td><td>the group that owns the directory </td></tr> <tr><td class="paramname">perm</td><td>permissions of the directory </td></tr> <tr><td class="paramname">atime</td><td>time the file was last accessed </td></tr> <tr><td class="paramname">mtime</td><td>modification time of the file </td></tr> <tr><td class="paramname">ctime</td><td>creation time of the file </td></tr> </table> </dd> </dl> <dl class="since"><dt><b>Since:</b></dt><dd>3.2 </dd></dl> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>TODO(BIC) make virtual. For now it must be implemented by virtual_hook. </dd></dl> <p>Reimplemented in <a class="el" href="classKTar.html#a56609fd3b04acd74fc0b3bc5e015af1c">KTar</a>, and <a class="el" href="classKZip.html#a10a0203bbc65aed39afceb498795527a">KZip</a>.</p> <p>Definition at line <a class="el" href="karchive_8cpp_source.html#l00327">327</a> of file <a class="el" href="karchive_8cpp_source.html">karchive.cpp</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="karchive_8h_source.html">karchive.h</a></li> <li><a class="el" href="karchive_8cpp_source.html">karchive.cpp</a></li> </ul> </div> </div></div> </td> </tr> <tr> <td valign="top" id="leftmenu" width="25%"> <a name="navigation"></a> <div class="menu_box"><h2>kio/kio</h2> <div class="nav_list"> <ul><li><a href="index.html">Main Page</a></li><li><a href="modules.html">Modules</a></li><li><a href="namespaces.html">Namespace List</a></li><li><a href="hierarchy.html">Class Hierarchy</a></li><li><a href="classes.html">Alphabetical List</a></li><li><a href="annotated.html">Class List</a></li><li><a href="files.html">File List</a></li><li><a href="namespacemembers.html">Namespace Members</a></li><li><a href="functions.html">Class Members</a></li><li><a href="pages.html">Related Pages</a></li></ul> <!-- <h2>Class Picker</h2> <div style="text-align: center;"> <form name="guideform"> <select name="guidelinks" style="width:100%;" onChange="window.location=document.guideform.guidelinks.options[document.guideform.guidelinks.selectedIndex].value"> <option value="annotated.html">-- Choose --</option> <option value="classKACL.html">kacl</option>, <option value="classKAr.html">kar</option>, <option value="classKArchive.html">karchive</option>, <option value="classKArchiveDirectory.html">karchivedirectory</option>, <option value="classKArchiveEntry.html">karchiveentry</option>, <option value="classKArchiveFile.html">karchivefile</option>, <option value="classKAutoMount.html">kautomount</option>, <option value="classKAutoUnmount.html">kautounmount</option>, <option value="classKDataTool.html">kdatatool</option>, <option value="classKDataToolAction.html">kdatatoolaction</option>, <option value="classKDataToolInfo.html">kdatatoolinfo</option>, <option value="classKDCOPServiceStarter.html">kdcopservicestarter</option>, <option value="classKDEDesktopMimeType.html">kdedesktopmimetype</option>, <option value="classKDirLister.html">kdirlister</option>, <option value="classKDirNotify.html">kdirnotify</option>, <option value="classKDirWatch.html">kdirwatch</option>, <option value="classKEMailSettings.html">kemailsettings</option>, <option value="classKExecMimeType.html">kexecmimetype</option>, <option value="classKFileFilter.html">kfilefilter</option>, <option value="classKFileItem.html">kfileitem</option>, <option value="classKFileMetaInfo.html">kfilemetainfo</option>, <option value="classKFileMetaInfoGroup.html">kfilemetainfogroup</option>, <option value="classKFileMetaInfoItem.html">kfilemetainfoitem</option>, <option value="classKFileMimeTypeInfo.html">kfilemimetypeinfo</option>, <option value="classKFileMimeTypeInfo_1_1GroupInfo.html">kfilemimetypeinfo::groupinfo</option>, <option value="classKFileMimeTypeInfo_1_1ItemInfo.html">kfilemimetypeinfo::iteminfo</option>, <option value="classKFilePlugin.html">kfileplugin</option>, <option value="classKFileShare.html">kfileshare</option>, <option value="classKFilterBase.html">kfilterbase</option>, <option value="classKFilterDev.html">kfilterdev</option>, <option value="classKFolderType.html">kfoldertype</option>, <option value="classKImageIO.html">kimageio</option>, <option value="classKIO_1_1AuthInfo.html">kio::authinfo</option>, <option value="classKIO_1_1ChmodJob.html">kio::chmodjob</option>, <option value="classKIO_1_1Connection.html">kio::connection</option>, <option value="classKIO_1_1CopyJob.html">kio::copyjob</option>, <option value="classKIO_1_1DataProtocol.html">kio::dataprotocol</option>, <option value="classKIO_1_1DataSlave.html">kio::dataslave</option>, <option value="classKIO_1_1DavJob.html">kio::davjob</option>, <option value="classKIO_1_1DeleteJob.html">kio::deletejob</option>, <option value="classKIO_1_1FileCopyJob.html">kio::filecopyjob</option>, <option value="classKIO_1_1ForwardingSlaveBase.html">kio::forwardingslavebase</option>, <option value="classKIO_1_1Job.html">kio::job</option>, <option value="classKIO_1_1ListJob.html">kio::listjob</option>, <option value="classKIO_1_1MetaData.html">kio::metadata</option>, <option value="classKIO_1_1MetaInfoJob.html">kio::metainfojob</option>, <option value="classKIO_1_1MimetypeJob.html">kio::mimetypejob</option>, <option value="classKIO_1_1MkdirJob.html">kio::mkdirjob</option>, <option value="classKIO_1_1MultiGetJob.html">kio::multigetjob</option>, <option value="classKIO_1_1NetAccess.html">kio::netaccess</option>, <option value="classKIO_1_1NetRC.html">kio::netrc</option>, <option value="classKIO_1_1PasswordDialog.html">kio::passworddialog</option>, <option value="classKIO_1_1PreviewJob.html">kio::previewjob</option>, <option value="classKIO_1_1ProgressBase.html">kio::progressbase</option>, <option value="classKIO_1_1RenameDlg.html">kio::renamedlg</option>, <option value="classKIO_1_1Scheduler.html">kio::scheduler</option>, <option value="classKIO_1_1SimpleJob.html">kio::simplejob</option>, <option value="classKIO_1_1Slave.html">kio::slave</option>, <option value="classKIO_1_1SlaveBase.html">kio::slavebase</option>, <option value="classKIO_1_1SlaveConfig.html">kio::slaveconfig</option>, <option value="classKIO_1_1SlaveInterface.html">kio::slaveinterface</option>, <option value="classKIO_1_1StatJob.html">kio::statjob</option>, <option value="classKIO_1_1StatusbarProgress.html">kio::statusbarprogress</option>, <option value="classKIO_1_1StoredTransferJob.html">kio::storedtransferjob</option>, <option value="classKIO_1_1TCPSlaveBase.html">kio::tcpslavebase</option>, <option value="classKIO_1_1TransferJob.html">kio::transferjob</option>, <option value="classKLimitedIODevice.html">klimitediodevice</option>, <option value="classKMimeMagic.html">kmimemagic</option>, <option value="classKMimeMagicResult.html">kmimemagicresult</option>, <option value="classKMimeType.html">kmimetype</option>, <option value="classKMimeTypeChooser.html">kmimetypechooser</option>, <option value="classKMimeTypeChooserDialog.html">kmimetypechooserdialog</option>, <option value="classKMimeTypeResolver.html">kmimetyperesolver</option>, <option value="classKNFSShare.html">knfsshare</option>, <option value="classKOCRDialog.html">kocrdialog</option>, <option value="classKOCRDialogFactory.html">kocrdialogfactory</option>, <option value="classKOpenWithHandler.html">kopenwithhandler</option>, <option value="classKProtocolInfo.html">kprotocolinfo</option>, <option value="classKProtocolManager.html">kprotocolmanager</option>, <option value="classKRemoteEncoding.html">kremoteencoding</option>, <option value="classKRun.html">krun</option>, <option value="classKSambaShare.html">ksambashare</option>, <option value="classKScanDialog.html">kscandialog</option>, <option value="classKScanDialogFactory.html">kscandialogfactory</option>, <option value="classKService.html">kservice</option>, <option value="classKServiceGroup.html">kservicegroup</option>, <option value="classKServiceOffer.html">kserviceoffer</option>, <option value="classKServiceType.html">kservicetype</option>, <option value="classKServiceTypeProfile.html">kservicetypeprofile</option>, <option value="classKShellCompletion.html">kshellcompletion</option>, <option value="classKShred.html">kshred</option>, <option value="classKSimpleFileFilter.html">ksimplefilefilter</option>, <option value="classKTar.html">ktar</option>, <option value="classKTrader.html">ktrader</option>, <option value="classKURIFilter.html">kurifilter</option>, <option value="classKURIFilterData.html">kurifilterdata</option>, <option value="classKURIFilterPlugin.html">kurifilterplugin</option>, <option value="classKURIFilterPluginList.html">kurifilterpluginlist</option>, <option value="classKURLCompletion.html">kurlcompletion</option>, <option value="classKURLPixmapProvider.html">kurlpixmapprovider</option>, <option value="classKZip.html">kzip</option>, <option value="classObserver.html">observer</option>, <option value="classRenameDlgPlugin.html">renamedlgplugin</option>, <option value="classThumbCreator.html">thumbcreator</option>, </select> </form> </div> --> </div></div> <div class="menu_box"><h2>API Dox</h2> <div class="nav_list"> <ul> <li><a href="../../../arts/html/index.html">arts</a></li><li><a href="../../../dcop/html/index.html">dcop</a></li><li><a href="../../../dnssd/html/index.html">dnssd</a></li><li><a href="../../../interfaces/html/index.html">interfaces</a></li><li> <a href="../../../interfaces/kimproxy/interface/html/index.html">interface</a></li><li> <a href="../../../interfaces/kimproxy/library/html/index.html">library</a></li><li> <a href="../../../interfaces/kspeech/html/index.html">kspeech</a></li><li> <a href="../../../interfaces/ktexteditor/html/index.html">ktexteditor</a></li><li><a href="../../../kabc/html/index.html">kabc</a></li><li><a href="../../../kate/html/index.html">kate</a></li><li><a href="../../../kcmshell/html/index.html">kcmshell</a></li><li><a href="../../../kdecore/html/index.html">kdecore</a></li><li><a href="../../../kded/html/index.html">kded</a></li><li><a href="../../../kdefx/html/index.html">kdefx</a></li><li><a href="../../../kdeprint/html/index.html">kdeprint</a></li><li><a href="../../../kdesu/html/index.html">kdesu</a></li><li><a href="../../../kdeui/html/index.html">kdeui</a></li><li><a href="../../../kdoctools/html/index.html">kdoctools</a></li><li><a href="../../../khtml/html/index.html">khtml</a></li><li><a href="../../../kimgio/html/index.html">kimgio</a></li><li><a href="../../../kinit/html/index.html">kinit</a></li><li><a href="../../../kio/html/index.html">kio</a></li><li> <a href="../../../kio/bookmarks/html/index.html">bookmarks</a></li><li> <a href="../../../kio/httpfilter/html/index.html">httpfilter</a></li><li> <a href="../../../kio/kfile/html/index.html">kfile</a></li><li> <a href="../../../kio/kio/html/index.html">kio</a></li><li> <a href="../../../kio/kioexec/html/index.html">kioexec</a></li><li> <a href="../../../kio/kpasswdserver/html/index.html">kpasswdserver</a></li><li> <a href="../../../kio/kssl/html/index.html">kssl</a></li><li><a href="../../../kioslave/html/index.html">kioslave</a></li><li> <a href="../../../kioslave/http/html/index.html">http</a></li><li><a href="../../../kjs/html/index.html">kjs</a></li><li><a href="../../../kmdi/html/index.html">kmdi</a></li><li> <a href="../../../kmdi/kmdi/html/index.html">kmdi</a></li><li><a href="../../../knewstuff/html/index.html">knewstuff</a></li><li><a href="../../../kparts/html/index.html">kparts</a></li><li><a href="../../../kresources/html/index.html">kresources</a></li><li><a href="../../../kspell2/html/index.html">kspell2</a></li><li><a href="../../../kunittest/html/index.html">kunittest</a></li><li><a href="../../../kutils/html/index.html">kutils</a></li><li><a href="../../../kwallet/html/index.html">kwallet</a></li><li><a href="../../../libkmid/html/index.html">libkmid</a></li><li><a href="../../../libkscreensaver/html/index.html">libkscreensaver</a></li> </ul></div></div> </td> </tr> </table> <span class="doNotDisplay"> <a href="http://www.kde.org/" accesskey="8">KDE Home</a> | <a href="http://accessibility.kde.org/" accesskey="9">KDE Accessibility Home</a> | <a href="http://www.kde.org/media/accesskeys.php" accesskey="0">Description of Access Keys</a> </span> <div style="height: 8px"></div> <div id="footer"> <div id="footer_left"> Maintained by <a href="mailto:groot@kde.org">Adriaan de Groot</a> and <a href="mailto:winter@kde.org">Allen Winter</a>. <br/> KDE and K Desktop Environment are trademarks of <a href="http://www.kde.org/areas/kde-ev/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> | <a href="http://www.kde.org/contact/impressum.php">Legal</a> </div> <div id="footer_right"><img src="/media/images/footer_right.png" style="margin: 0px" alt="" /></div> </div> <!-- WARNING: DO NOT SEND MAIL TO THE FOLLOWING EMAIL ADDRESS! YOU WILL BE BLOCKED INSTANTLY AND PERMANENTLY! <a href="mailto:aaaatrap-425acc3b5374943f@kde.org">Block me</a> WARNING END --> </body> </html>