X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fio%2Ffilesystem.hpp;h=d7fe184da71bf0be3c9898261184e5a853a055ab;hb=ce10bfbe252d5598bbb559c6ce55aed1b9393227;hp=b69352a4ba962a4292031ef1662fd5a2274561f4;hpb=1daba5b2fa044c1822d104fb65eeb88b6aeb5499;p=blank.git diff --git a/src/io/filesystem.hpp b/src/io/filesystem.hpp index b69352a..d7fe184 100644 --- a/src/io/filesystem.hpp +++ b/src/io/filesystem.hpp @@ -34,6 +34,35 @@ inline bool make_dir(const std::string &s) { /// @return true if the directory was created or already exists bool make_dirs(const std::string &); +/// remove given file +/// @return true on success +bool remove_file(const std::string &); +/// recursively remove given directory +/// may leave the directory partially removed on failure +/// @return true if the directory was completely removed +bool remove_dir(const std::string &); + + +/// Create a temporary directory with lifetime tie to the instance's. +/// Note that the directory may survive its object if removal fails +/// for any reason, e.g. another process changing permissions. +class TempDir { + +public: + TempDir(); + ~TempDir(); + + TempDir(const TempDir &) = delete; + TempDir &operator =(const TempDir &) = delete; + +public: + const std::string &Path() const noexcept { return path; } + +private: + std::string path; + +}; + } #endif