<?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" xml:lang="en"> <head> <title>KTempDir</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <link rel="stylesheet" type="text/css" href="../common/doxygen.css" /> <link rel="stylesheet" media="screen" type="text/css" title="KDE Colors" href="../common/kde.css" /> </head> <body> <div id="container"> <div id="header"> <div id="header_top"> <div> <div> <img alt ="" src="../common/top-kde.jpg"/> KDE 4.9 PyKDE API Reference </div> </div> </div> <div id="header_bottom"> <div id="location"> <ul> <li>KDE's Python API</li> </ul> </div> <div id="menu"> <ul> <li><a href="../modules.html">Overview</a></li> <li><a href="http://techbase.kde.org/Development/Languages/Python">PyKDE Home</a></li> <li><a href="http://kde.org/family/">Sitemap</a></li> <li><a href="http://kde.org/contact/">Contact Us</a></li> </ul> </div> </div> </div> <div id="body_wrapper"> <div id="body"> <div id="right"> <div class="content"> <div id="main"> <div class="clearer"> </div> <h1>KTempDir Class Reference</h1> <code>from PyKDE4.kdecore import *</code> <p> <h2>Detailed Description</h2> <p>\class KTempDir ktempdir.h <KTempDir> </p> <p> Create a unique directory for temporary use. </p> <p> The KTempDir class creates a unique directory for temporary use. </p> <p> This is especially useful if you need to create a directory in a world writable directory like /tmp without being vulnerable to so called symlink attacks. </p> <p> KDE applications, however, shouldn't create files or directories in /tmp in the first place but use the "tmp" resource instead. The standard KTempDir constructor will do that by default. </p> <p> To create a temporary directory that starts with a certain name in the "tmp" resource, one should use: KTempDir(KStandardDirs.locateLocal("tmp", prefix)); </p> <p> KTempDir does not create any missing directories, but KStandardDirs.locateLocal() does. </p> <p> <dl class="see" compact><dt><b>See also:</b></dt><dd> KStandardDirs </dd></dl> <dl class="see" compact><dt><b>See also:</b></dt><dd> KTemporaryFile </dd></dl> <dl class="author" compact><dt><b>Author:</b></dt><dd> Joseph Wenninger <jowenn@kde.org> </dd></dl> </p> <table border="0" cellpadding="0" cellspacing="0"><tr><td colspan="2"><br><h2>Methods</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#KTempDir">__init__</a> (self, QString directoryPrefix=QString(), int mode=0700)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#KTempDir">__init__</a> (self, <a href="../kdecore/KTempDir.html">KTempDir</a> a0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#autoRemove">autoRemove</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#create">create</a> (self, QString directoryPrefix, int mode)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#exists">exists</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">QString </td><td class="memItemRight" valign="bottom"><a class="el" href="#name">name</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#setAutoRemove">setAutoRemove</a> (self, bool autoRemove)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#status">status</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#unlink">unlink</a> (self)</td></tr> <tr><td colspan="2"><br><h2>Static Methods</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#removeDir">removeDir</a> (QString path)</td></tr> </table> <hr><h2>Method Documentation</h2><a class="anchor" name="KTempDir"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">__init__</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QString </td> <td class="paramname"><em>directoryPrefix=QString()</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>mode=0700</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Creates a temporary directory with the name: <b>\<directoryPrefix\>\<six</b> letters> </p> <p> The default <b>directoryPrefix</b> is "$KDEHOME/tmp-$HOST/appname", i.e. as returned by KStandardDirs.locateLocal("tmp", KGlobal.mainComponent().componentName()) </p> <p> </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>directoryPrefix</em> </td><td> the prefix of the file name, or QString() for the default value <tr><td></td><td valign="top"><em>mode</em> </td><td> the file permissions, almost always in octal. The first digit selects permissions for the user who owns the file: read (4), write (2), and execute (1); the second selects permissions for other users in the file's group, with the same values; and the third for other users not in the file's group, with the same values. </td></tr> </table></dl> <p> </p></div></div><a class="anchor" name="KTempDir"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">__init__</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="../kdecore/KTempDir.html">KTempDir</a> </td> <td class="paramname"><em>a0</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"></div></div><a class="anchor" name="autoRemove"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">bool autoRemove</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p><dl class="return" compact><dt><b>Returns:</b></dt><dd> whether auto remove is active </dd></dl> <dl class="see" compact><dt><b>See also:</b></dt><dd> setAutoRemove </dd></dl> </p></div></div><a class="anchor" name="create"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">bool create</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">QString </td> <td class="paramname"><em>directoryPrefix</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>mode</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Creates a "random" directory with specified mode </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>directoryPrefix</em> </td><td> to use when creating temp directory (the rest is generated randomly) <tr><td></td><td valign="top"><em>mode</em> </td><td> directory permissions </td></tr> </table></dl> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd> true upon success </dd></dl> </p></div></div><a class="anchor" name="exists"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">bool exists</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Returns true if a temporary directory has successfully been created and has not been unlinked yet. </p></div></div><a class="anchor" name="name"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">QString name</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Returns the full path and name of the directory, including a trailing '/'. <dl class="return" compact><dt><b>Returns:</b></dt><dd> The name of the directory, or QString() if creating the directory has failed or the directory has been unlinked </dd></dl> </p></div></div><a class="anchor" name="setAutoRemove"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> setAutoRemove</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>autoRemove</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Turn automatic deletion of the directory on or off. Automatic deletion is on by default. </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>autoRemove</em> </td><td> toggle automatic deletion on or off </td></tr> </table></dl> <p> </p></div></div><a class="anchor" name="status"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">int status</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Returns the status of the directory creation based on errno. (see errno.h) </p> <p> <dl class="note" compact><dt><b>Note:</b></dt><dd> You should check the status after object creation to check whether the directory could be created. </dd></dl> </p> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd> the errno status, 0 means ok </dd></dl> </p></div></div><a class="anchor" name="unlink"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> unlink</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Deletes the directory recursively </p></div></div><hr><h2>Static Method Documentation</h2><a class="anchor" name="removeDir"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">bool removeDir</td> <td>(</td> <td class="paramtype">QString </td> <td class="paramname"><em>path</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Remove a directory and all its contents </p> <p> Remove recursively a directory, even if it is not empty or contains other directories. </p> <p> However the function works too when the <b>path</b> given is a non-directory file. In that case it simply remove that file. </p> <p> The function stops on the first error. </p> <p> <dl class="note" compact><dt><b>Note:</b></dt><dd> This function is more meant for removing a directory not created by the user. For user-created directories, using KIO.del() is recommended instead, especially as it has user feedback for long operations. </dd></dl> </p> <p> </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>path</em> </td><td> Path of the directory to delete </td></tr> </table></dl> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd> true if successful, otherwise false (Use errno for more details about the error.) </dd></dl> To do: decide how and where this function should be defined in KDE5 </p></div></div> </div> </div> </div> <div id="left"> <div class="menu_box"> <div class="nav_list"> <ul> <li><a href="../allclasses.html">Full Index</a></li> </ul> </div> <a name="cp-menu" /><div class="menutitle"><div> <h2 id="cp-menu-project">Modules</h2> </div></div> <div class="nav_list"> <ul><li><a href="../akonadi/index.html">akonadi</a></li> <li><a href="../dnssd/index.html">dnssd</a></li> <li><a href="../kdecore/index.html">kdecore</a></li> <li><a href="../kdeui/index.html">kdeui</a></li> <li><a href="../khtml/index.html">khtml</a></li> <li><a href="../kio/index.html">kio</a></li> <li><a href="../knewstuff/index.html">knewstuff</a></li> <li><a href="../kparts/index.html">kparts</a></li> <li><a href="../kutils/index.html">kutils</a></li> <li><a href="../nepomuk/index.html">nepomuk</a></li> <li><a href="../phonon/index.html">phonon</a></li> <li><a href="../plasma/index.html">plasma</a></li> <li><a href="../polkitqt/index.html">polkitqt</a></li> <li><a href="../solid/index.html">solid</a></li> <li><a href="../soprano/index.html">soprano</a></li> </ul></div></div> </div> </div> <div class="clearer"/> </div> <div id="end_body"></div> </div> <div id="footer"><div id="footer_text"> This documentation is maintained by <a href="mailto:simon@simonzone.com">Simon Edwards</a>.<br /> KDE<sup>®</sup> and <a href="../images/kde_gear_black.png">the K Desktop Environment<sup>®</sup> logo</a> are registered trademarks of <a href="http://ev.kde.org/" 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> </body> </html>