Ich suche nach einer guten Open-Source-Windows-FTP-Client-Bibliothek mit einer Public-Domain- oder BSD-Type-Lizenz. Etwas, das ich auf den Quellcode zugreifen kann und ich kann es aus C ++ für Windows-Anwendungen in einer kommerziellen App verwenden.
Wir verwenden Wininet seit Jahren und es ist fehlerhaft und schrecklich. Der letzte Strohhalm ist der IE8 Beta 2 enthält einen neuen Fehler in InternetGetLastResponseInfo (). Ich kann nicht länger rechtfertigen, Wininet zu verwenden, wenn unsere Benutzer die neueste Version von IE installieren und unsere App brechen können.
Ich habe libcurl angeschaut, aber es ist viel zu schwer für unsere Bedürfnisse. Das einzige, was ich brauche, ist FTP-Unterstützung. Ich könnte einen Tag damit verbringen, den ganzen Code in libcurl zu entfernen, den ich nicht brauche, aber ich würde lieber mit einer netten einfachen FTP-Client-Bibliothek anfangen, wenn möglich.
Ich habe ftplib ( Ссылка ) angeschaut, aber es ist GPL und ich brauche das für eine kommerzielle App mit geschlossener Quelle.
Ich habe einen FTP-Client-Code geschrieben, es ist nicht so schwer (leider war es vor 15 Jahren und ich habe den Quellcode nicht mehr). Es muss eine nette, einfache, kostenlose Client-Bibliothek geben, die nur FTP ausführt und über eine Lizenz verfügt, die in kommerziellen kommerziellen Apps verwendet werden kann.
(Wenn Sie neugierig sind, liegt der Fehler darin, dass InternetGetLastResponseInfo () nicht die vollständige Antwort zurückgibt, wenn Sie versuchen, FtpFindFirstFile () mit einer FTP-Site auszuführen, auf der Sie keine Verbindung im passiven Modus herstellen können Einer der vielen Bugs, die ich im Laufe der Jahre gefunden habe, ist, dass die FTP-Unterstützung von Wininet alle Timeout-Werte ignoriert. Dieser spezielle Fehler existiert seit Jahren.
Ich habe libCurl sehr gut genutzt. Der einzige Nachteil besteht darin, dass meines Wissens keine Unterstützung für die Analyse von Verzeichnisinformationen besteht, die von FTP-Servern zurückkommen (offensichtlich gibt es kein Standardverzeichnisformat).