WinInet wrapper for FTP in Delphi
Give advice, please. I want to develop FTP / SFTP / FTPS client download manager in Delphi on WinInet. On what better to do (Indy, ISC Components, WinInet ...)? May already have solution开发者_JS百科s?
You didn't specify your version of Delphi and target platform (x64 and MacOSX is available in the latest version of Delphi), so here is some generic advice:
WinInet: No FTPS Support at all, so this rules this out for you.
Indy: Packaged with Delphi (free), fully supported in the latest version of Delphi, mature, widely used, uses synchronous model (you need to use threads so network access does not lock the GUI).
ICS Components: Free, mature, apparently no Delphi XE2 support as of now, so no explicit x64 support. Widely used. Uses asynchronious model (no need for threads, uses callbacks on the GUI thread).
Synapse: Lesser known library (free), more compact and easy to understand than the above two. Also has FTPS support, not updated recently but works ok with Delphi 2007-2009. Synchronous model.
I worked with all four above, and it is hard to recommend one over another. All of them can accomplish what you need (except WinInet), it just comes down to what model (synchronous/asynchronous) you feel more comfortable with or already use in your application, and what level of platform/compiler support you require. If you don't see any reason to choose #3 or #4, I'd say go with Indy since it is bundled with Delphi, has x64/MacOSX support, and will probably work in the next version of Delphi too.
I can't remember the exact reasons, but when we needed to implement sFTP and FTPs, we chose to go with ipWorks (http://www.nsoftware.com/ipworks) and ipWorks SSL/SSH. Although, I wasn't the one paying for it, so I wasn't concerned out the cost.
It may have been just because we were already using ipWorks for the FTP part.
I have a rotine execute an external application, this case the application is WinSCP. If there is necessecity I can insert the example.
精彩评论