diff options
author | Tim Mayberry <mojofunk@gmail.com> | 2007-09-04 04:48:04 +0000 |
---|---|---|
committer | Tim Mayberry <mojofunk@gmail.com> | 2007-09-04 04:48:04 +0000 |
commit | 29842063e312e804e748f2160a90ccc35be63311 (patch) | |
tree | 05588bb8cd940777bb73f36fa0669d66e2dc6b5f /libs | |
parent | f9c202dba050d3975f977bb08ceaf0b1b39fa499 (diff) |
Add function PBD::sys::remove as a wrapper to g_unlink
API is intended to be indentical(apart from the string type) to boost::filesystem::remove
git-svn-id: svn://localhost/ardour2/trunk@2372 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/pbd/filesystem.cc | 14 | ||||
-rw-r--r-- | libs/pbd/pbd/filesystem.h | 12 |
2 files changed, 26 insertions, 0 deletions
diff --git a/libs/pbd/filesystem.cc b/libs/pbd/filesystem.cc index 229b22fcb5..aefe6d525c 100644 --- a/libs/pbd/filesystem.cc +++ b/libs/pbd/filesystem.cc @@ -94,6 +94,20 @@ create_directories(const path & p) return true; } +bool +remove(const path & p) +{ + if(!exists(p)) return false; + + int error = g_unlink (p.to_string().c_str()); + + if(error == -1) + { + throw filesystem_error(g_strerror(errno), errno); + } + return true; +} + string basename (const path & p) { diff --git a/libs/pbd/pbd/filesystem.h b/libs/pbd/pbd/filesystem.h index 8d4bf8dea9..7eca8a7ed3 100644 --- a/libs/pbd/pbd/filesystem.h +++ b/libs/pbd/pbd/filesystem.h @@ -94,6 +94,18 @@ bool create_directory(const path & p); */ bool create_directories(const path & p); +/** + * Attempt to delete the file at path p as if by the glib function + * g_unlink. + * + * @return true if file existed prior to removing it, false if file + * at p did not exist. + * + * @throw filesystem_error if removing the file failed for any other + * reason other than the file did not exist. + */ +bool remove(const path & p); + string basename (const path& p); } // namespace sys |