Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Странная история с получением списка файлов из FTP / 9 сообщений из 9, страница 1 из 1
11.03.2005, 13:24
    #32955540
AIZ
AIZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная история с получением списка файлов из FTP
Доброго времени суток!
WinXP, PB9, FTP G6, использую объекты n_cst_wininet32 и n_cst_wininet_ftp любезно присланные Мудрецовым Андреем.
Происходит следующее. Приложение переписывает файлы из папки FTP, а затем их там удаляет. Оно постоянно загружено. В очередной сеанс приема, несмотря на то, что файлов ФИЗИЧЕСКИ там нет, выдает список якобы находящихся там файлов. Только после перезагрузки приложения получаю их отсутствие.
Код функции такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
ulong		lul_hFind, lul_rc =  1 
String	ls_null, ls_retval
FINDDATA	pData

SetNull( ls_null )
lul_hFind = FtpFindFirstFileA( iul_service, ls_null, pData, INTERNET_FLAG_RAW_DATA,  0  )
iul_errorcode = GetLastError()
IF lul_hFind >  0  THEN
	ls_retval += ( pData.cFilename + "~t" + String( pData.dwFileAttributes ) + "~r~n" )
	DO WHILE lul_rc >  0 
		lul_rc = InternetFindNextFileA( lul_hFind, pData )
		IF lul_rc >  0  THEN
			ls_retval += ( pData.cFilename + "~t" + String( pData.dwFileAttributes ) + "~r~n" )
		END IF
	LOOP
	RETURN ls_retval
ELSE
	RETURN ls_null
END IF
Автор Roy Kiesler

Что можно посоветовать?
...
Рейтинг: 0 / 0
11.03.2005, 14:54
    #32955883
zuzu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная история с получением списка файлов из FTP
попробуй убрать галку чтобы данный объект не имел свойство аутоинстанс, и создавай этот сервис каждый раз когда понадобится, это будет равносильно перегрузке, да и конечно удаляй его поле того как поюзал.
...
Рейтинг: 0 / 0
11.03.2005, 15:33
    #32956030
AIZ
AIZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная история с получением списка файлов из FTP
К сожалению снятие autoinstantiate и CREATE, а затем DESTROY не помогло. Доп. подробности: видит файлы, которые там были ранее и не видит те, что там сейчас.
...
Рейтинг: 0 / 0
11.03.2005, 16:19
    #32956194
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная история с получением списка файлов из FTP
AIZК сожалению снятие autoinstantiate и CREATE, а затем DESTROY не помогло. Доп. подробности: видит файлы, которые там были ранее и не видит те, что там сейчас.Есть мнение, что проблема может быть связана с кешированием... Попробуйте INTERNET_FLAG_RELOAD
Код: plaintext
#define INTERNET_FLAG_RELOAD            0x80000000  // retrieve the original item
или комбинацию с вашим INTERNET_FLAG_RELOAD bitand INTERNET_FLAG_DONT_CACHE
Код: plaintext
1.
#define INTERNET_FLAG_NO_CACHE_WRITE    0x04000000  // don't write this item to the cache
#define INTERNET_FLAG_DONT_CACHE        INTERNET_FLAG_NO_CACHE_WRITE
...
Рейтинг: 0 / 0
11.03.2005, 16:27
    #32956219
AIZ
AIZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная история с получением списка файлов из FTP
На всякий случай протокол с комментариями.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - (not logged in) ( 192 . 168 . 0 . 44 ) > connected to ip :  192 . 168 . 0 . 44 
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - (not logged in) ( 192 . 168 . 0 . 44 ) > sending welcome message.
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - (not logged in) ( 192 . 168 . 0 . 44 ) >  220  G6 FTP Server ready ...
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - (not logged in) ( 192 . 168 . 0 . 44 ) > USER USER_CCC
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - (not logged in) ( 192 . 168 . 0 . 44 ) >  331  Password required for USER_CCC.
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - (not logged in) ( 192 . 168 . 0 . 44 ) > PASS ********
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) > logged in.
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) >  230  User USER_CCC logged in.
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) > PWD 
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) >  257  "/C:/POST" is current directory.
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) > CWD C:/POST/CCC/
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) > asked to change directory : 'C:\POST\ -> C:\POST\CCC\' --> Access allowed.
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) >  250  CWD command successful. "/C:/POST/CCC" is current directory.
Папка стала текущей. Получили список несуществующих файлов
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) > TYPE I
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) >  200  Type set to I.
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) > PORT  192 , 168 , 0 , 44 , 13 , 142 
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) >  200  Port command successful.
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) > SIZE AAACCC507000016N.TIC
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) >  550  No such file or directory.
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) > RETR AAACCC507000016N.TIC
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) > asked to download 'C:\POST\CCC\AAACCC507000016N.TIC' --> Access denied (No Such File).
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) >  550  'AAACCC507000016N.TIC' : No Such File.
Ясное дело, нет такого файла! А те, что есть - не видны!
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) > CWD /C:/POST
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) > asked to change directory : 'C:\POST\CCC\ -> C:\POST\' --> Access allowed.
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) >  250  CWD command successful. "/C:/POST" is current directory.
Вернулись в прежнюю папку
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) > QUIT 
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) >  221  Bye Bye ...
( 000161 )  11 . 03 . 2005   18 : 14 : 10  - USER_CCC ( 192 . 168 . 0 . 44 ) > disconnected. ( 00 : 00 : 00 )

Вот такие дела.
...
Рейтинг: 0 / 0
11.03.2005, 16:42
    #32956276
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная история с получением списка файлов из FTP
Вдогонку...
Как устанавливается соединение?
Приведите пожалуйста вызов функции of_InternetOpen.
...
Рейтинг: 0 / 0
11.03.2005, 22:44
    #32956843
iLLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная история с получением списка файлов из FTP
AIZbla-bla-bla

lul_hFind = FtpFindFirstFileA( iul_service, ls_null, pData,INTERNET_FLAG_RAW_DATA, 0 )

bla-bla-bla

lul_rc = InternetFindNextFileA( lul_hFind, pData )

bla-bla-bla

Я тут случайно не увидел InternetCloseHandle или его там нет? Если хендл не закрывать, то и результат поиска будет висеть.
...
Рейтинг: 0 / 0
11.03.2005, 22:51
    #32956847
iLLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная история с получением списка файлов из FTP
Еще в догонку. Может актуально будет.
...
Рейтинг: 0 / 0
12.03.2005, 09:04
    #32956999
AIZ
AIZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странная история с получением списка файлов из FTP
Спасибо всем и отдельное -> PL99! INTERNET_FLAG_RELOAD помогло. Я и сам подозревал, что здесь что-то с кэш, но не знал, как бороться.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Странная история с получением списка файлов из FTP / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]