Рекурсивный обход 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;
}

Ответы (0 шт):