10.04.2007, 14:15 | #1 |
Участник
|
FTP FtpFindFirstFileA реализация?
Может кто-нибудь реализовал функцию WinInet FtpFindFirstFileA?
Очень нужна.... Или подскажите, кто работал с ftp через Ax, можно ли скачать файлы по маске? |
|
10.04.2007, 14:24 | #2 |
Программатор
|
Цитата:
Например вот Поиск файла по маске работа по FTP Последний раз редактировалось Sada; 10.04.2007 в 14:28. |
|
10.04.2007, 16:39 | #3 |
Участник
|
Поиск файла по маске понятен,
если бы можно было полностью скачать все файлы к себе с ftp. Но как это сделать, если не знаешь списка файлов? |
|
10.04.2007, 17:28 | #4 |
Программатор
|
Путь известен? Тогда перебрать все файлы в директории и пока не кончатся копировать. См. функции WinApi (точно какая не помню, но что то такое там есть, ибо делал такое).
|
|
10.04.2007, 17:37 | #5 |
Программатор
|
X++: void findZipFiles(FilePath _fullFilePath) { #File void findFiles(FileName _path, FileName _fileName, FileName _prefix = this.fullFileName(_path,_fileName)) { FileName fileName; int hdl; ; setprefix(_prefix); if (WinAPI::folderExists(_path)) { [hdl,fileName] = WinApi::findFirstFile(this.fullFileName(_path,_fileName)); while (fileName) { fileName = WinApi::findNextFile(hdl); } WinApi::findClose(hdl); } } ; findFiles(_fullFilePath,'*.zip'); } X++: FileName fullFileName(FileName _path, FileName _fileName) { FileName pathName; FileName fileName; FileName fileExtension; ; [pathName,fileName,fileExtension] = fileNameSplit(_fileName); return _path + '\\' + fileName + fileExtension; } Последний раз редактировалось Sada; 10.04.2007 в 17:41. |
|
11.04.2007, 08:14 | #6 |
Участник
|
Путь - это ftp://server/
Есть логин и пароль И как через WinApi можно подконектиться к ftp, чтобы там перебирать файлы? У меня получилось забрать файл без проблем вот так: h = winInet.internetConnect('sapp03','login','pwd'); if (winInet.ftpSetCurrentDirectory(h, 'out')) { g = winInet.FtpGetFile(h, '1.txt', 'C:\\ftp_temp\\1.txt'); } winInet.internetCloseHandle(h); Тут WinApi::findFirstFile и подобные вещи на сколько я понимаю не пройдут |
|
11.04.2007, 10:07 | #7 |
Программатор
|
Плохо
|
|
11.04.2007, 11:32 | #8 |
Участник
|
Описал функции и получилось Может кому нужно будет.
Class WinInet X++: ClassDeclaration ... DLLFunction _ftpFindFirstFile; DLLFunction _internetFindNextFile; void new() ... _ftpFindFirstFile = new DLLFunction(_winInet, 'FtpFindFirstFileA'); _ftpFindFirstFile.returns(ExtTypes::DWORD); _ftpFindFirstFile.arg(ExtTypes::DWORD); _ftpFindFirstFile.arg(ExtTypes::STRING); _ftpFindFirstFile.arg(ExtTypes::Pointer); // Win32_Find_Data _ftpFindFirstFile.arg(ExtTypes::DWord); _ftpFindFirstFile.arg(ExtTypes::DWord); _internetFindNextFile = new DLLFunction(_winInet, 'InternetFindNextFileA'); _internetFindNextFile.returns(ExtTypes::DWORD); _internetFindNextFile.arg(ExtTypes::DWord); _internetFindNextFile.arg(ExtTypes::Pointer); // Win32_Find_Data container ftpFindFirstFile(int _ndl, str 255 _mask) { Binary data = new Binary(0x200); ; return [_ftpFindFirstFile.call(_ndl, _mask, data, 0, 0), data.string(44)]; } container internetFindNextFile(int _hdl) { Binary data = new Binary(0x200); ; return [_internetFindNextFile.call(_hdl, data), data.string(44)]; } |
|
|
За это сообщение автора поблагодарили: kashperuk (3), DreamCreator (3), rkorchagin (1). |
|
Похожие темы | ||||
Тема | Ответов | |||
работа по FTP | 9 | |||
msdynamicsax: FTP-client within Ax | 0 | |||
FTP и SSL | 1 | |||
Обратная реализация | 4 | |||
Реализация лизинговой деятельности компании в Аксапте ... | 4 |
|