⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftpget.cpp

📁 QT4 gui programming的随书光盘
💻 CPP
字号:
#include <QtCore>#include <QtNetwork>#include <iostream>#include "ftpget.h"FtpGet::FtpGet(QObject *parent)    : QObject(parent){    connect(&ftp, SIGNAL(done(bool)), this, SLOT(ftpDone(bool)));}bool FtpGet::getFile(const QUrl &url){    if (!url.isValid()) {        std::cerr << "Error: Invalid URL" << std::endl;        return false;    }    if (url.scheme() != "ftp") {        std::cerr << "Error: URL must start with 'ftp:'" << std::endl;        return false;    }    if (url.path().isEmpty()) {        std::cerr << "Error: URL has no path" << std::endl;        return false;    }    QString localFileName = QFileInfo(url.path()).fileName();    if (localFileName.isEmpty())        localFileName = "ftpget.out";    file.setFileName(localFileName);    if (!file.open(QIODevice::WriteOnly)) {        std::cerr << "Error: Cannot write file "                  << qPrintable(file.fileName()) << ": "                  << qPrintable(file.errorString()) << std::endl;        return false;    }    ftp.connectToHost(url.host(), url.port(21));    ftp.login();    ftp.get(url.path(), &file);    ftp.close();    return true;}void FtpGet::ftpDone(bool error){    if (error) {        std::cerr << "Error: " << qPrintable(ftp.errorString())                  << std::endl;    } else {        std::cerr << "File downloaded as "                  << qPrintable(file.fileName()) << std::endl;    }    file.close();    emit done();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -