|
|
#1 |
|
Участник
|
FTP FtpFindFirstFileA реализация?
Может кто-нибудь реализовал функцию WinInet FtpFindFirstFileA?
Очень нужна.... Или подскажите, кто работал с ftp через Ax, можно ли скачать файлы по маске? |
|
|
|
|
#2 |
|
Программатор
|
Цитата:
Например вот Поиск файла по маске работа по FTP Последний раз редактировалось Sada; 10.04.2007 в 14:28. |
|
|
|
|
#3 |
|
Участник
|
Поиск файла по маске понятен,
если бы можно было полностью скачать все файлы к себе с ftp. Но как это сделать, если не знаешь списка файлов? |
|
|
|
|
#4 |
|
Программатор
|
Путь известен? Тогда перебрать все файлы в директории и пока не кончатся копировать. См. функции WinApi (точно какая не помню, но что то такое там есть, ибо делал такое).
|
|
|
|
|
#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. |
|
|
|
|
#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 и подобные вещи на сколько я понимаю не пройдут
|
|
|
|
|
#7 |
|
Программатор
|
Плохо
|
|
|
|
|
#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 | |||
|