aboutsummaryrefslogtreecommitdiff
path: root/butl/filesystem.cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2016-11-01 22:58:25 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2016-11-01 22:58:25 +0300
commitcc8a2a1517cc3c55bdeb066a038868fb8c7f04d6 (patch)
tree54d826346d84b957d1e3cb595f3b89da73d3cb03 /butl/filesystem.cxx
parent4010a0ee23adea7938b005f72576c5e716888abf (diff)
Add entry_exists(path)
Diffstat (limited to 'butl/filesystem.cxx')
-rw-r--r--butl/filesystem.cxx21
1 files changed, 21 insertions, 0 deletions
diff --git a/butl/filesystem.cxx b/butl/filesystem.cxx
index a47140d..424e361 100644
--- a/butl/filesystem.cxx
+++ b/butl/filesystem.cxx
@@ -66,6 +66,27 @@ namespace butl
}
#endif
+#ifndef _WIN32
+ bool
+ entry_exists (const char* p, bool fl)
+ {
+ struct stat s;
+ if ((fl ? stat (p, &s) : lstat (p, &s)) == 0)
+#else
+ bool
+ entry_exists (const char* p, bool)
+ {
+ struct _stat s;
+ if (_stat (p, &s) == 0)
+#endif
+ return true;
+
+ if (errno == ENOENT || errno == ENOTDIR)
+ return false;
+
+ throw system_error (errno, system_category ());
+ }
+
bool
dir_exists (const char* p)
{