检查并创建目录

时间:2012-12-21 11:58:38

标签: c create-directory

我想检查,然后创建一个目录,如果它还不存在。

我使用了以下代码:

#define APP_DATA_DIR_CHILD_2  "./child2"

g_nResult = GetFileAttributes((wchar_t*)APP_DATA_DIR_CHILD_2);
if (g_nResult <= 0)
{
    g_nResult = mkdir(APP_DATA_DIR_CHILD_2);
}

但是没有正确检查。即使在创建目录之后,我在GetFileAttributes()中返回-1。

有人可以帮忙吗?

PS:我还想确保代码适用于Linux和Windows。

1 个答案:

答案 0 :(得分:1)

替换

#define APP_DATA_DIR_CHILD_2                    "./child2"
g_nResult = GetFileAttributes((wchar_t*)APP_DATA_DIR_CHILD_2);

By(如果定义了Unicode)

#define APP_DATA_DIR_CHILD_2                    L"./child2"
g_nResult = GetFileAttributes(APP_DATA_DIR_CHILD_2);

您的代码远离便携式......请使用stat

struct stat sts;
if ( stat(APP_DATA_DIR_CHILD_2, &sts) != 0) {
    // Fail to get info about the file, may not exist...
}
else {
    if (S_ISDIR(sts.st_mode)) {  /* The file is a directory... */ }
}

查看文档:{​​{3}}