version 3.10.0
PIDir::CurrentDirOverrider and PIDir::absolute
This commit is contained in:
@@ -85,6 +85,10 @@ public:
|
||||
//! \~russian Возвращает путь "path" относительно этой директории
|
||||
PIString relative(const PIString & path) const;
|
||||
|
||||
//! \~english Returns relative to this directory path "path" as absolute path
|
||||
//! \~russian Возвращает путь "path" относительно этой директории в виде абсолютного пути
|
||||
PIString absolute(const PIString & path) const;
|
||||
|
||||
//! \~english Set this directory path to simplified "path"
|
||||
//! \~russian Устанавливает путь директории упрощённым "path"
|
||||
PIDir & setDir(const PIString & path);
|
||||
@@ -173,6 +177,34 @@ public:
|
||||
//! \~russian Устанавливает путь директории "dir" текущим путём приложения
|
||||
static bool setCurrent(const PIDir & dir) { return setCurrent(dir.path()); }
|
||||
|
||||
|
||||
//! \ingroup IO
|
||||
//! \~\brief
|
||||
//! \~english Temporarily change working directory.
|
||||
//! \~russian Временная смена рабочей директории.
|
||||
class PIP_EXPORT CurrentDirOverrider {
|
||||
public:
|
||||
//! \~english Change working directory dir or file with relative or absolute path "path"
|
||||
//! \~russian Меняет рабочую директорию на другую директорию или файл с относительным или абсолютным путём "path"
|
||||
CurrentDirOverrider(const PIString & path);
|
||||
|
||||
//! \~english Change working directory to dir or file "info"
|
||||
//! \~russian Меняет рабочую директорию на директорию или файл "info"
|
||||
CurrentDirOverrider(const PIFile::FileInfo & info);
|
||||
|
||||
~CurrentDirOverrider() { restore(); }
|
||||
|
||||
//! \~english Restore previous working directory
|
||||
//! \~russian Восстанавливает предыдущую рабочую директорию
|
||||
void restore();
|
||||
|
||||
private:
|
||||
void save(const PIFile::FileInfo & info);
|
||||
PIString prev_cd;
|
||||
bool active = true;
|
||||
};
|
||||
|
||||
|
||||
private:
|
||||
static bool makeDir(const PIString & path);
|
||||
static bool removeDir(const PIString & path);
|
||||
@@ -195,6 +227,7 @@ inline bool operator!=(const PIFile::FileInfo & v0, const PIFile::FileInfo & v1)
|
||||
return (v0.path != v1.path);
|
||||
}
|
||||
|
||||
|
||||
//! \relatesalso PICout
|
||||
//! \~english Output operator to \a PICout
|
||||
//! \~russian Оператор вывода в \a PICout
|
||||
|
||||
Reference in New Issue
Block a user