KTempDir Class Reference

#include <ktempdir.h>

List of all members.


Detailed Description

The KTempDir class creates a unique directory for temporary use.

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.

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.

To create a temporary directory that starts with a certain name in the "tmp" resource, one should use: KTempDir(locateLocal("tmp", prefix));

KTempFile does not create any missing directories, but locateLocal() does.

See also KStandardDirs

Since:
3.2
Author:
Joseph Wenninger <jowenn@kde.org>

Definition at line 53 of file ktempdir.h.


Public Member Functions

 KTempDir (QString directoryPrefix=QString::null, int mode=0700)
 ~KTempDir ()
void setAutoDelete (bool autoDelete)
int status () const
QString name () const
QDirqDir ()
void unlink ()
bool existing () const

Static Public Member Functions

static bool removeDir (const QString &path)

Protected Member Functions

bool create (const QString &directoryPrefix, int mode)
void setError (int error)

Constructor & Destructor Documentation

KTempDir::KTempDir ( QString  directoryPrefix = QString::null,
int  mode = 0700 
)

Creates a temporary directory with the name: <directoryPrefix><six letters>.

The default directoryPrefix is "$KDEHOME/tmp-$HOST/appname"

Parameters:
directoryPrefix the prefix of the file name, or QString::null for the default value
mode 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 fourth for other users not in the file's group, with the same values.

Definition at line 59 of file ktempdir.cpp.

KTempDir::~KTempDir (  ) 

The destructor deletes the directory and it's contents if autoDelete is enabled.

Definition at line 106 of file ktempdir.cpp.


Member Function Documentation

void KTempDir::setAutoDelete ( bool  autoDelete  )  [inline]

Turn automatic deletion on or off.

Automatic deletion is off by default.

Parameters:
autoDelete true to turn automatic deletion on

Definition at line 85 of file ktempdir.h.

int KTempDir::status (  )  const

Returns the status of the directory creation based on errno.

(see errno.h) 0 means OK.

You should check the status after object creation to check whether a directory could be created in the first place.

Returns:
the errno status, 0 means ok

Definition at line 116 of file ktempdir.cpp.

QString KTempDir::name (  )  const

Returns the full path and name of the directory, including a trailing '/'.

Returns:
The name of the directory, or QString::null if creating the directory has failed or the directory has been unlinked

Definition at line 122 of file ktempdir.cpp.

QDir * KTempDir::qDir (  ) 

Returns the QDir* of the temporary directory.

Returns:
QDir directory information of the directory or 0 if their is no managed directory The caller has to free the pointer open for writing to the

Definition at line 134 of file ktempdir.cpp.

void KTempDir::unlink (  ) 

Deletes the directory recursively.

Definition at line 141 of file ktempdir.cpp.

bool KTempDir::existing (  )  const

Returns:
true if a temporary directory has successfully been created and not been unlinked yet

Definition at line 128 of file ktempdir.cpp.

bool KTempDir::removeDir ( const QString path  )  [static]

Remove a directory and all its contents.

Remove recursively a directory, even if it is not empty or contains other directories.

However the function works too when the path given is a non-directory file. In that case it simply remove that file.

The function stops on the first error.

Note:
This function is more meant for removing a directory not created by the user. For user-created directories, using KIO::NetAccess::del is recommended instead, especially as it has user feedback for long operations.
Parameters:
path Path of the directory to delete
Returns:
true if successful, otherwise false (Use errno for more details about the error.)
Since:
3.5.2

Definition at line 208 of file ktempdir.cpp.

bool KTempDir::create ( const QString directoryPrefix,
int  mode 
) [protected]

Creates a "random" directory with specified mode.

Parameters:
directoryPrefix to use when creating temp directory (the rest is generated randomly)
mode directory permissions
Returns:
bool true upon sucess

Definition at line 72 of file ktempdir.cpp.

void KTempDir::setError ( int  error  )  [inline, protected]

Sets the errno value.

Parameters:
error the value to set the status to.

Definition at line 161 of file ktempdir.h.


The documentation for this class was generated from the following files:
KDE Home | KDE Accessibility Home | Description of Access Keys