Рекурсивный обход FTP winapi
Скопировал код для windows, что бы переделать для FTP, но не хватает знаний, что бы он заработал. Функция завершается при любой ошибке GetLastError (например ERROR_NO_MORE_FILES, ERROR_INTERNET_EXTENDED_ERROR). Помогите, пожалуйста.
int r_list2(HINTERNET& hFtp, wchar_t* startDirectory)
{
HANDLE hFindFile;
WIN32_FIND_DATAW data;
int worked = 1;
wchar_t pathBuffer[MAX_PATH];
printf("Current starting directory: %ws\n", startDirectory);
swprintf_s(pathBuffer, MAX_PATH, L"%ws/", startDirectory);
printf("Current buffer: %ws\n", pathBuffer);
hFindFile = FtpFindFirstFile(hFtp, pathBuffer, &data, 0, 0);
if (!hFindFile) {
ERR;
getExtErr();
InternetCloseHandle(hFindFile);
return 1;
}
while (worked != 0) {
if ((data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && !(data.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)) {
if ((wcscmp(data.cFileName, L".") != 0) && (wcscmp(data.cFileName, L"..") != 0)) {
printf("Found: %ws\n", data.cFileName);
swprintf_s(pathBuffer, MAX_PATH, L"%ws/%ws", startDirectory, data.cFileName);
printf("Recursing into: %ws\n", pathBuffer);
InternetCloseHandle(hFindFile);
r_list2(hFtp, pathBuffer);
}
}
worked = InternetFindNextFile(hFindFile, &data);
}
return 1;
}