0

dirがまだ存在しない場合は、確認して作成したいと思います。

次のコードを使用しました。

#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);

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... */ }
}

ドキュメントを見てみましょう: http://linux.die.net/man/2/stat

于 2012-12-21T12:00:33.077 に答える