QingfengLee
12/6/2015 - 12:27 PM

Make directory

Make directory

#ifdef _WIN32
#include <direct.h>
#else
#include <sys/stat.h>
#include <unistd.h>
#endif

/**
 * @breif 检查是否存在dirname这个目录,如果没有,则建立
 * @param[in] dirname 目录名称
 * @return 如果成功返回0,否则返回非0值
 */
int checkMkDir(const char* dirname)
{
#ifdef _WIN32
    if (_mkdir(dirname))
    {
        printf("Directory <%s> existed.\n", dirname);
    }
    else {
        printf("Directory <%s> created.\n", dirname);
    }
#else
    int rc = 0;
    struct stat stFileInfo;
    rc = stat(dirname, &stFileInfo);
    if (rc < 0 && errno == ENOENT)
    {
        printf("Creating directory <%s>.\n", dirname);
        rc = mkdir(dirname, 00755);
    }
    if (rc < 0) {
        return rc;
    }
    if (!S_ISDIR(stFileInfo.st_mode))
    {
        return -1;
    }
    printf("Directory <%s> existed.\n", dirname);
#endif
    return 0;
}