Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Попытка найти файл на, FTP - виснет 
V
    Опции темы
Rickert
  Дата 27.10.2006, 05:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Код

...
    CInternetSession ses;
    CFtpConnection* m_Ftp = ses.GetFtpConnection(...);

    ULONG ulSize = 0;
    CFtpFileFind ftpFile(m_Ftp);
    m_Ftp->SetCurrentDirectory("updates");
    BOOL ftpFind = ftpFile.FindFile("version.txt", INTERNET_FLAG_RELOAD);
    if (ftpFind)
        ulSize = ftpFile.GetLength();

    ftpFile.Close();

    CString str;

    str.Format("Length is %d", ulSize);
    AfxMessageBox(str.GetBuffer());
...

Коннект проходит, всё нормально, а на строке "BOOL ftpFind = ftpFile.FindFile("version.txt", INTERNET_FLAG_RELOAD);" Виснет и всё...
Why?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
chaos
Дата 29.10.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 2
Всего: 44



вот тебе пример из МСДН

Код

#include <afx.h>
#include <afxwin.h>
#include <afxinet.h>
#include <stdio.h>

CWinApp theApp;

int main()
{
    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, 
                    ::GetCommandLine(), 0))
    {
        // catastropic error! MFC can't initialize
        return -1;
    }

    // create a session object to initialize WININET library
    // Default parameters mean the access method in the registry
    // (that is, set by the "Internet" icon in the Control Panel)
    // will be used.

    CInternetSession sess(_T("MyProgram/1.0"));

    CFtpConnection* pConnect = NULL;

    try
    {
        // Request a connection to ftp.microsoft.com. Default
        // parameters mean that we'll try with username = ANONYMOUS
        // and password set to the machine name @ domain name
        pConnect = sess.GetFtpConnection(_T("ftp.microsoft.com"));

        // use a file find object to enumerate files
        CFtpFileFind finder(pConnect);

        // start looping
        BOOL bWorking = finder.FindFile(_T("*"));

        while (bWorking)
        {
            bWorking = finder.FindNextFile();
            printf_s("%s\n", (LPCTSTR) finder.GetFileURL());
        }
    }
    catch (CInternetException* pEx)
    {
        TCHAR sz[1024];
        pEx->GetErrorMessage(sz, 1024);
        printf_s("ERROR!  %s\n", sz);
        pEx->Delete();
     }

    // if the connection is open, close it
    if (pConnect != NULL) 
    {
        pConnect->Close();
        delete pConnect;
    }

   return 0;
}

PM WWW   Вверх
Rickert
Дата 31.10.2006, 05:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Мда, дествительно, пример, который встретил на форуме, был неверным.
Теперь вопрос: а как слить файл? Через HTTP там был класс CHttpFile.
В МСДН нашёл пример - http://msdn.microsoft.com/library/default....omftpserver.asp
Что-то он у меня не пашет. Основная функция возвращает ошибку.
Код

...
str = ftpFile.GetFileURL();
if (FtpGetFile(m_Ftp, str.GetBuffer(), "file.txt", FALSE, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY | INTERNET_FLAG_NO_CACHE_WRITE, 0) == FALSE)
...


Добавлено @ 05:47 
Разобрался уже.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0432 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.