欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > linux >内容正文

linux

Linux下的qt5.7Qftp类,[翻译] Qt QFtp功能无法被Qt 5 Network系列模块替代的说明

发布时间:2025/4/16 linux 46 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Linux下的qt5.7Qftp类,[翻译] Qt QFtp功能无法被Qt 5 Network系列模块替代的说明 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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::(const QString &dir = QString())这些接口的功能就无法完成了。

在Stack Overflow上找了答案,确认Qt5下的QNetworkAccessManager等模块无法替代QFtp等模块。

翻译如下:

标题: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完成该功能......

总结

以上是生活随笔为你收集整理的Linux下的qt5.7Qftp类,[翻译] Qt QFtp功能无法被Qt 5 Network系列模块替代的说明的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。