15/05/30 17:41:29.50 AsLlcQ98.net
FindFirstFileでディレクトリ内のフォルダを取得しようとしたんですが、Program Filesのようにパスにスペースが入ると取得できないようになりました
(""で括ったりスペースを~で置き換えたりしてもダメでした) こういう場合はどうすれば良いんですかね・・・
HANDLE hFind;
WIN32_FIND_DATA win32fd;
char m_cFind[MAX_PATH];
int bank_max = 0;
string bank_name[99];
::strcpy_s(m_cFind, MAX_PATH, "D:\\\"Program Files\""); //D:\\test なら問題なく取得できた
::strcat_s(m_cFind, MAX_PATH, "\\");
::strcat_s(m_cFind, MAX_PATH, "*");
hFind = FindFirstFile(m_cFind, &win32fd);
do {
if (hFind != INVALID_HANDLE_VALUE) {
if (strcmp(win32fd.cFileName, ".") && strcmp(win32fd.cFileName, "..")){
if (win32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
bank_name[bank_max] = win32fd.cFileName;
bank_max++;
}
}
}
} while (FindNextFile(hFind, &win32fd));
FindClose(hFind);