Qt QFtp功能無法被Qt 5 Network系列模塊替代的說明

https://www.cnblogs.com/r0xFED/p/9879338.html

Qt4下Qt提供了QFtp類以完成FTP相關的操作,但是Qt5不再提供QFtp類了,取而代之的是QNetworkAccessManager,QNetworkRequest和QNetworkReply等類。那麼Qt5的network模塊能否替代QFtp等類呢?

        測試後發現,如果利用QNetworkRequest封裝諸如: ftp://ftp.jaist.ac.jp/pub/qtproject/official_releases/jom/jom_0_6_08.zip以通過FTP下載某一個特定的文件是可以做到的;但是類似原int QFtp::list(const QString & dir = QString())這些接口的功能就無法完成了。

  在Stack Overflow上找了答案,確認Qt5下的QNetworkAccessManager等模塊無法替代QFtp等模塊。

        鏈接:https://stackoverflow.com/questions/14111120/qt-code-to-get-list-of-files-from-ftp-server-using-qnetworkaccessmanager

 

       

 

翻譯如下:

標題:Qt編碼並利用QNetworkAccessManager從FTP服務器上獲取文件列表

問題:我正在用Qt編寫一個FTP客戶端程序,用的是Qt 5.0版本。

           我已經通過QNetworkAccessManager實現了上傳和下載文件功能,之所以不用QFtp是因爲Qt5下QFtp已被廢除了。

           現在我想編碼實現從FTP服務器獲取文件列表,我知道在QFtp類下的具體做法但是不知道怎樣利用QNetworkAccessManager完成這個功能,給個建議吧。

回答:如果你想從一個遠程目錄獲取文件列表的話,你還是需要用QFtp,因爲目前QNetworkAccessManager還無法做到。

           QFtp已經作爲一個獨立模塊分離出去了,但是你可以從Gitorious倉庫中下載:https://qt.gitorious.org/qt/qtftp (點擊 "Source tree",然後點擊"Download master..."以下載該模塊)。

 

注:實際上到了Qt 5.10了還是無法完成對QFtp的替代,我目前考慮利用libcurl完成該功能......

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章