/* * File name: kdirsaver.h * Summary: Utility object to save current working directory * License: LGPL - See file COPYING.LIB for details. * Author: Stefan Hundhammer * * Updated: 2003-01-07 */ #ifndef KDirSaver_h #define KDirSaver_h #ifdef HAVE_CONFIG_H #include #endif #include #include /** * Helper class to change directories without losing the current context. * Will change back to the old working directory when destroyed. * * @short Directory changer with automatic restore **/ class KDirSaver { public: /** * Constructor. Will save the current working directory and change to the * path supplied. The old working directory will be restored when this * object is destroyed. **/ KDirSaver( const TQString & newPath = "" ); /** * Constructor from a KURL. Will issue error messages on stdout for * non-local objects. **/ KDirSaver( const KURL & url ); /** * Destructor. Restores the original working directory. **/ virtual ~KDirSaver(); /** * Change directory. Unlike @ref TQDir::cd(), this method really performs a * system chdir() so subsequent system calls will have the directory * specified as the new current working directory. **/ void cd( const TQString & newPath ); /** * Obtain the current working directory's absolute path. * This is useful for resolving/simplifying relative paths. **/ TQString currentDirPath() const; /** * (Prematurely) restore the working directory. Unnecessary when this * object will be destroyed anyway since the destructor does exactly that. **/ void restore(); protected: TQDir oldWorkingDir; }; #endif // KDirSaver_h // EOF