diff options
Diffstat (limited to 'cpp/include/IceUtil/FileUtil.h')
-rw-r--r-- | cpp/include/IceUtil/FileUtil.h | 44 |
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 |