powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / FTP - ....
25 сообщений из 45, страница 1 из 2
FTP - ....
    #35242351
Mykola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для работы с фтп использую wininet.dll.
Возникла проблемка получить список файлов на фтп (из указаной папки). Буду благодарен за помощь.
pb 10.2
...
Рейтинг: 0 / 0
FTP - ....
    #35242490
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MykolaДля работы с фтп использую wininet.dll.
Возникла проблемка получить список файлов на фтп (из указаной папки). Буду благодарен за помощь.
pb 10.2
Тут есть такая ф-я.
Сам не юзал.
...
Рейтинг: 0 / 0
FTP - ....
    #35242623
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я реализовывал, но использовал wodftpdlx
Он гораздо удобнее
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
FTP - ....
    #35251076
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
комрад, вот тебе писЧдля размышлений, надеюсь поможет:

local external functions:
// wininet functions
FUNCTION ulong InternetOpenA( string szAgent, ulong dwAccessType, string szProxy, string szProxyBypass, ulong dwFlags ) LIBRARY "wininet.dll"
FUNCTION ulong InternetConnectA( ulong hInternet, string szServerName, uint nServerPort, string szUserName, string szPassword, ulong dwService, ulong dwFlags, ulong dwContext ) LIBRARY "wininet.dll"
FUNCTION boolean InternetCloseHandle( ulong hInternet ) LIBRARY "wininet.dll"
//FUNCTION boolean InternetGetLastResponseInfoA( REF ulong lpdwError, REF string lpszBuffer, REF ulong lpdwBufferLength ) LIBRARY "wininet.dll"
//FUNCTION boolean InternetGetConnectedState( REF ulong lpdwFlags, ulong dwReserved ) LIBRARY "wininet.dll"
//FUNCTION boolean InternetAutodial( ulong dwFlags, ulong dwReserved ) LIBRARY "wininet.dll"
//FUNCTION boolean InternetAutodialHangup( ulong dwReserved ) LIBRARY "wininet.dll"
//FUNCTION ulong InternetDial( ulong hwndParent, string szConnectId, ulong dwFlags, REF ulong dwConnection, ulong dwReserved ) LIBRARY "wininet.dll"
//FUNCTION ulong InternetHangup( ulong dwConnection, ulong dwReserved ) LIBRARY "wininet.dll"
//FUNCTION boolean InternetSetOptionA( ulong hInternet, ulong dwOption, string lpBuffer, ulong dwBufferLength ) LIBRARY "wininet.dll"
//FUNCTION boolean InternetCheckConnectionA( string lpUrl, ulong dwFlags, ulong dwReserved ) LIBRARY "wininet.dll"
//FUNCTION ulong InternetOpenUrlA( ulong hInternet, string lpUrl, string lpHeaders, ulong dwHeadersLength, ulong dwFlags, ulong dwContext ) LIBRARY "wininet.dll"

// wininet ftp functions
//FUNCTION boolean FtpDeleteFile( ulong hSession, string lpszFileName ) LIBRARY "wininet.dll"
FUNCTION boolean FtpCreateDirectoryA( ulong hSession, string lpszDirectory ) LIBRARY "wininet.dll"
//FUNCTION ulong FtpFindFirstFileA( ulong hSession, string szSearchFile, REF os_finddata lpvData, ulong dwFlags, ulong dwContext ) LIBRARY "wininet.dll"
//FUNCTION boolean FtpGetFileA( ulong hService, string szRemoteFile, string szLocalFile, boolean bFailIfExist, ulong dwLocalFlags, ulong dwInetFals, ulong dwContext ) LIBRARY "wininet.dll"
FUNCTION boolean FtpPutFileA( ulong hService, string szLocalFile, string szRemoteFile, ulong dwFlags, ulong dwContext ) LIBRARY "wininet.dll"
FUNCTION boolean FtpGetCurrentDirectoryA( ulong hService, REF string szPath, REF ulong lpdwBuffLength ) LIBRARY "wininet.dll"
//FUNCTION boolean FtpRemoveDirectory( ulong hSession, string lpszDirectory ) LIBRARY "wininet.dll"
//FUNCTION boolean FtpRenameFile( ulong hSession, string lpszExisting, string lpszNew ) LIBRARY "wininet.dll"
FUNCTION boolean FtpSetCurrentDirectoryA( ulong hService, string szPath ) LIBRARY "wininet.dll"
//FUNCTION ulong FtpOpentFileA( ulong hSession, string szFileName, ulong dwAccess, ulong dwFlags, ulong dwContext ) LIBRARY "wininet.dll"
//FUNCTION boolean InternetFindNextFileA( ulong hFind, REF os_finddata lpvData ) LIBRARY "wininet.dll"

// windows functions
//FUNCTION boolean FileTimeToSystemTime(ref os_filedatetime lpFileTime, ref os_systemtime lpSystemTime) library "KERNEL32.DLL"
//FUNCTION boolean FileTimeToLocalFileTime(ref os_filedatetime lpFileTime, ref os_filedatetime lpLocalFileTime) library "KERNEL32.DLL"
FUNCTION ulong GetLastError() LIBRARY "kernel32.dll"

/***********************************************************************************************/
fw_ftp_report:

string s_logon, s_password_a, s_ftp_address, s_cd_directory, s_file_name_a
application a_app
ULong lul_buflen
string s_null
long l_internet, l_session, l_mode
int INTERNET_OPEN_TYPE_PRECONFIG
int INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4
int INTERNET_DEFAULT_FTP_PORT = 21
int INTERNET_SERVICE_FTP = 1
int FTP_TRANSFER_TYPE_ASCII = 1
int FTP_TRANSFER_TYPE_BINARY = 2
long INTERNET_FLAG_PASSIVE = 134217728

lul_buflen = 256

SetNull(s_null)

// Open Internet ...
a_app = GetApplication()

l_internet = InternetOpenA(a_app.AppName, INTERNET_OPEN_TYPE_PRECONFIG, s_null, s_null, 0)

IF IsNull(l_internet) OR l_internet = 0 THEN
RETURN 'Error: InternetOpenA'
END IF

s_logon = dw_1.GetItemString(a_l_curr_rpw, 'logon')
s_password_a = dw_1.GetItemString(a_l_curr_rpw, 'password_a')
s_ftp_address = dw_1.GetItemString(a_l_curr_rpw, 'ftp_address')
s_cd_directory = dw_1.GetItemString(a_l_curr_rpw, 'cd_directory')
s_file_name_a = dw_1.GetItemString(a_l_curr_rpw, 'file_name_a')

s_file_name_a = a_s_assoc_name + ' - ' + Mid(s_file_name_a, 1, Pos(lower(s_file_name_a), '.pdf')) + ' - ' + i_s_today + '.pdf'

// Connect ...
l_session = InternetConnectA(l_internet, s_ftp_address, INTERNET_DEFAULT_FTP_PORT, s_logon, s_password_a, &
INTERNET_SERVICE_FTP, 0, 0) //INTERNET_FLAG_PASSIVE, 0)

IF IsNull(l_session) OR l_session = 0 THEN
InternetCloseHandle(l_session)
RETURN 'Error: InternetConnectA'
END IF

IF NOT IsNull(s_cd_directory) THEN
IF NOT FtpSetCurrentDirectoryA(l_session, s_cd_directory) THEN
IF NOT FtpCreateDirectoryA(l_session, s_cd_directory) THEN
RETURN 'Error: FtpCreateDirectoryA'
ELSE
IF NOT FtpSetCurrentDirectoryA(l_session, s_cd_directory) THEN
RETURN 'Error: FtpSetCurrentDirectoryA'
END IF
END IF
END IF
END IF
// Send ...
//l_mode = FTP_TRANSFER_TYPE_ASCII
l_mode = FTP_TRANSFER_TYPE_BINARY

// ar_s_file_name is the local file...
// s_file_name_a is the new remote file...
IF NOT FtpPutFileA(l_session, ar_s_file_name, s_file_name_a, l_mode, 0) THEN
InternetCloseHandle(l_session)
RETURN 'Error: FtpPutFileA'
END IF

// Close ...
IF NOT InternetCloseHandle(l_session) THEN
RETURN 'Error: InternetCloseHandle'
END IF

RETURN ''
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
FTP - ....
    #36235877
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyMykolaДля работы с фтп использую wininet.dll.
Возникла проблемка получить список файлов на фтп (из указаной папки). Буду благодарен за помощь.
pb 10.2
Тут есть такая ф-я.
Сам не юзал.
Кто-нибудь пытался использовать FtpFindFirstFileA в PowerBuilder'е. У меня PB виснет при ее вызове, в т.ч. и пример по ссылке.
...
Рейтинг: 0 / 0
FTP - ....
    #36235903
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При этом, если на локальном ftp смотреть, то все нормально ищется, а на удаленном - виснет... хотя через FAR там все нормально отображается...
Кстати вот пример работы с FTP без PFC. Он тоже виснет при попытке просмотра того FTP...
...
Рейтинг: 0 / 0
FTP - ....
    #36235914
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А на соседнем компьютере все работает без проблем...
...
Рейтинг: 0 / 0
FTP - ....
    #36235941
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю проблема в региональных настройках.
Дело в том что многие FTP сервера в листинге файлов выдают даты и числа в зависимом от локали формате. Соответственно, клиенты могут их распарсить только если у них тот же формат дат и чисел либо если они в курсе этой проблемы и умеют ее обходить.
...
Рейтинг: 0 / 0
FTP - ....
    #36235953
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, еще может быть проблема что на том компе где виснет, фаерволом не разрешены входящие соединения на 20 порт, по которому данные передаются.
Если библиотека позволяет, примените пассивный режим FTP. В этом случае клиент сам устанавливает второе соединение.
...
Рейтинг: 0 / 0
FTP - ....
    #36236503
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyНу, еще может быть проблема что на том компе где виснет, фаерволом не разрешены входящие соединения на 20 порт, по которому данные передаются.
Если библиотека позволяет, примените пассивный режим FTP. В этом случае клиент сам устанавливает второе соединение.
Действительно, PowerBuilder блокировался брандмауэром, при этом никаких сообщений о попытке доступа к порту не возникало, и программа просто зависала, в тоже время скомпилированный exe файл при запуске выдавал стандартный запрос брандмауэра типа "программа пытается получить доступ...". Добавление PowerBuilder в список исключений решило проблему.
...
Рейтинг: 0 / 0
FTP - ....
    #36236529
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyMykolaДля работы с фтп использую wininet.dll.
Возникла проблемка получить список файлов на фтп (из указаной папки). Буду благодарен за помощь.
pb 10.2
Тут есть такая ф-я.
Сам не юзал.
Кстати, в этой библиотеке есть утечка ресурсов при вызове функций для поиска файлов - не возвращается указатель на последовательность поиска возвращенный FtpFindFirstFile (нет вызова функции InternetCloseHandle)
...
Рейтинг: 0 / 0
FTP - ....
    #36805935
Zmiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С конектом ясно,а как зааплодить файл по фтп в инете не нашел ?
...
Рейтинг: 0 / 0
FTP - ....
    #36806011
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZmiterС конектом ясно,а как зааплодить файл по фтп в инете не нашел ?
FtpPutFileA, примеры реализации - по ссылкам в теме.
...
Рейтинг: 0 / 0
FTP - ....
    #36806335
Zmiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А с папками при копировании как быть.По умолчанию корневая папка фтп,а если подпапки есть,полный путь надо.Что то фалсе врзвращвет копировалка
boolean lb
string ls_ftp,ls
ls_ftp=sle_1.text+"/Utb/"+is_file
lb= FtpPutFileA( l_internet, is_path, ls_ftp, 0,0)
is_file имя файла
is_path путь локальный путь файла
...
Рейтинг: 0 / 0
FTP - ....
    #36806402
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZmiterА с папками при копировании как быть.По умолчанию корневая папка фтп,а если подпапки есть,полный путь надо.Что то фалсе врзвращвет копировалка

Ну Вы как маленький, сами не можете посмотерть какие функции есть? FtpSetCurrentDirectoryA
...
Рейтинг: 0 / 0
FTP - ....
    #36806450
Zmiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а есть этого пример,что то у меня не карентится она.Сразу так и попробовал
...
Рейтинг: 0 / 0
FTP - ....
    #36806511
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zmiterа есть этого пример,что то у меня не карентится она.Сразу так и попробовал
Код: plaintext
		li_rc = inv_inet.of_ChangeDirectory(as_target)
Функция из библиотеки по первой ссылке.
...
Рейтинг: 0 / 0
FTP - ....
    #36806609
Zmiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин МаркZmiterа есть этого пример,что то у меня не карентится она.Сразу так и попробовал
Код: plaintext
		li_rc = inv_inet.of_ChangeDirectory(as_target)
Функция из библиотеки по первой ссылке.
Что то не вижу такого,где вы это тут нашли
...
Рейтинг: 0 / 0
FTP - ....
    #36806685
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZmiterЛокшин МаркZmiterа есть этого пример,что то у меня не карентится она.Сразу так и попробовал
Код: plaintext
		li_rc = inv_inet.of_ChangeDirectory(as_target)
Функция из библиотеки по первой ссылке.
Что то не вижу такого,где вы это тут нашли
Это строчка из моего проекта - пример вызова, вызывается функция из библиотеки по первой ссылки. Андерстенд?
...
Рейтинг: 0 / 0
FTP - ....
    #36807260
Zmiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ls_dir="/UTB"
lb=FtpSetCurrentDirectoryA( l_internet,ls_dir )
Возвращает фалсе,соединение по фтп уже есть,в чем нюанс
...
Рейтинг: 0 / 0
FTP - ....
    #36807302
Zmiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тупанул
long l_session, l_mode
int INTERNET_OPEN_TYPE_PRECONFIG
int INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4
int INTERNET_DEFAULT_FTP_PORT = 21
int INTERNET_SERVICE_FTP = 1
int FTP_TRANSFER_TYPE_ASCII = 1
int FTP_TRANSFER_TYPE_BINARY = 2
long INTERNET_FLAG_PASSIVE = 134217728

lul_buflen = 256

SetNull(s_null)
// Open Internet ...
a_app = GetApplication()

l_internet = InternetOpenA(a_app.AppName, INTERNET_OPEN_TYPE_PRECONFIG, s_null, s_null, 0)

IF IsNull(l_internet) OR l_internet = 0 THEN
messagebox("Ошибка", "Нет инета")
END IF


l_session=InternetConnectA(l_internet,ls_server,INTERNET_DEFAULT_FTP_PORT, s_logon, s_password,INTERNET_SERVICE_FTP, 0, 0),возвращает 0,21 порт открыт
не коннектится,дело происходит в локалке,что не так ?
...
Рейтинг: 0 / 0
FTP - ....
    #36807306
Zmiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу подключится под анонимусом пока.
...
Рейтинг: 0 / 0
FTP - ....
    #36807350
Zmiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачал зип по ссылке выше,разбираюсь.
...
Рейтинг: 0 / 0
FTP - ....
    #36812427
Zmiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как записывать и удалять понятно.А чем лучше скачивать или запускать файлы с фтп,что не получется не ридом не опен ?
...
Рейтинг: 0 / 0
FTP - ....
    #36812538
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZmiterКак записывать и удалять понятно.А чем лучше скачивать или запускать файлы с фтп,что не получется не ридом не опен ?
Блин, ну что, сложно скачать и посмотреть пример?
...
Рейтинг: 0 / 0
25 сообщений из 45, страница 1 из 2
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / FTP - ....
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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