summaryrefslogtreecommitdiff
path: root/cpp/include/IceUtil/FileUtil.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/IceUtil/FileUtil.h')
-rw-r--r--cpp/include/IceUtil/FileUtil.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/cpp/include/IceUtil/FileUtil.h b/cpp/include/IceUtil/FileUtil.h
index d081a6a5cba..617a88d8466 100644
--- a/cpp/include/IceUtil/FileUtil.h
+++ b/cpp/include/IceUtil/FileUtil.h
@@ -11,6 +11,9 @@
#define ICE_FILE_UTIL_H
#include <IceUtil/Config.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdio.h>
namespace IceUtilInternal
{
@@ -20,6 +23,47 @@ namespace IceUtilInternal
//
ICE_UTIL_API bool isAbsolutePath(const std::string&);
+//
+// Determine if a file exists.
+//
+ICE_UTIL_API bool fileExists(const std::string&);
+
+//
+// Determine if a directory exists.
+//
+ICE_UTIL_API bool directoryExists(const std::string&);
+
+#ifdef _WIN32
+
+typedef struct _stat64i32 structstat;
+#ifdef _MSC_VER
+# define O_RDONLY _O_RDONLY
+# define O_BINARY _O_BINARY
+
+# define S_ISDIR(mode) ((mode) & _S_IFDIR)
+# define S_ISREG(mode) ((mode) & _S_IFREG)
+#endif
+
+#else
+
+typedef struct stat structstat;
+# define O_BINARY 0
+
+#endif
+
+//
+// OS stat
+//
+ICE_UTIL_API int stat(const std::string&, structstat*);
+
+ICE_UTIL_API int remove(const std::string&);
+ICE_UTIL_API int rename(const std::string&, const std::string&);
+ICE_UTIL_API int rmdir(const std::string&);
+
+ICE_UTIL_API int mkdir(const std::string&, int);
+ICE_UTIL_API FILE* fopen(const std::string&, const std::string&);
+ICE_UTIL_API int open(const std::string&, int);
+ICE_UTIL_API int getcwd(std::string&);
};
#endif