0

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

我使用了以下代码:

#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 上都能运行。

4

1 回答 1

1

代替

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

通过(如果定义了 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... */ }
}

看看文档: http: //linux.die.net/man/2/stat

于 2012-12-21T12:00:33.077 回答