1. ftp://ftp.denx.de/pub/u-boot/lowboot-1.0.0.patch.gz  下载文件

FtpGet.h

#ifndef FTPGET_H
#define FTPGET_H #include <QUrl>
#include <QFtp>
#include <QFile> class Ftpget : public QObject
{
Q_OBJECT
public:
Ftpget(QObject *parent=0);
bool getFile(const QUrl &url); signals:
void done(); private slots:
void ftpDone(bool error); private:
QFtp ftp;
QFile file;
}; #endif // FTPGET_H

FtpGet.cpp

#include "FtpGet.h"
#include <iostream>
#include <QFileInfo> 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: Invaild 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();
}

main.cpp

#include <QtGui/QApplication>
#include <QCoreApplication>
#include <QStringList>
#include <iostream>
#include "FtpGet.h" int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QStringList args = QCoreApplication::arguments();
if( args.count() != 2 )
{
std::cerr << "Ex: ftpget ftp://xxxxx" << std::endl;
return 1;
} Ftpget getter;
if( !getter.getFile(QUrl(args[1])) )
return 1;
QObject::connect(&getter, SIGNAL(done()), &a, SLOT(quit())); return a.exec();
}

QT QFtp使用实例 从FTP下载一个文件的更多相关文章

  1. C# 使用ftp下载一个文件夹下的所有文件,包括子目录文件夹

    这篇博客给大家补充一个方法,就是得到一个目录下的所有文件名称.在前端调用,大家写一个递归去遍历就可以了,我在这里就不在写了.具体ftp下载的方法在我的另一篇博客里有,需要的可以去看一下. /// &l ...

  2. C#多线程下载一个文件

    这里只是说明多线程下载的理论基础,嘿嘿,并没有写多线程下载的代码,标题党了,但是我相信,看完这个代码就应该能够多线程的方式去下载一个文件了. 多线程下载是需要服务器支持的,这里并没有判断服务器不支持的 ...

  3. ftp下载目录文件 不需要ftp脚本

    ftp下载目录文件 不需要ftp脚本 wget ftp://192.168.1.37:21/checkpoints --ftp-user=ftpadmin --ftp-password=gaofeng ...

  4. tcl/tk实例详解——返回一个文件夹下所有文件的绝对路径

    http://blog.csdn.net/dulixin/article/details/2133840 #所有代码如下,使用注释的方式讲解脚本#修改好文件夹和保存结果路径,可以把本文件直接拷贝进tc ...

  5. windows通过ftp下载linux文件

    # windows 下载 linux的文件>> ftp <domain_or_ip>>> <input_username>>> <in ...

  6. 从Internet下载一个文件

    使用的.net框架下的System.Net.WebClient类的DownloadFile()方法以图片为例:

  7. 【大话QT之十】实现FTP断点续传(需要设置ftp服务器为“PASV”被动接收方式)

    应用需求: 网盘开发工作逐步进入各部分的整合阶段,当用户在客户端修改或新增加一个文件时,该文件要同步上传到服务器端对应的用户目录下,因此针对数据传输(即:上传.下载)这一块现在既定了三种传输方式,即: ...

  8. 【大话QT之十】实现FTP断点续传

    应用需求: 网盘开发工作逐步进入各部分的整合阶段,当用户在client改动或新添加一个文件时.该文件要同步上传到server端相应的用户文件夹下,因此针对传输数据(即:上传.下载)这一块如今既定了三种 ...

  9. springMVC下载FTP上的文件

    springMVC下载FTP上的文件 今天没时间写.先上传 一个工具类 工具类 package com.utils; import java.io.File; import java.io.FileO ...

随机推荐

  1. hdu1174(3维射线与圆是否相交)

    简单的题意,要注意z2 = h2*0.9-r2 #include <iostream> #include <cmath> #include <vector> #in ...

  2. SharePoint服务器端对象模型 之 访问文件和文件夹(Part 1)

    本节中所阐述的内容,主要适用于SharePoint文档库中的文件和文件夹,以及列表中的文件夹.系统中的其他文件(如_layouts中的文件.配置文件.程序文件等)不在本章节的讨论范围之内.   (一) ...

  3. delphi下excel的操作

    1.首先引用comobj.varints单元 2.声明xlApp,xlBook, xlSheet,picture: Variant; 3.基本操作 xlApp:=CreateOleObject('Ex ...

  4. Guava Joiner 拼接字符串

    Joiner Guava 是Google 对Java的内置类型进行增强和扩展的工具. Joiner.on(", ").join(Iterator<> iter) Joi ...

  5. Django分发控制器urls--白话聊Django系列

    开始前,先上一张图,让理解Django内部的处理流程,从图中我们可以知道Django内部使用MTV架构,那今天讲的第一个部分就是控制器,在Tornado框架中叫做路由系统,负责把url映射到相应的处理 ...

  6. 1、hive安装详细步骤

    一.环境准备 hadoop-2.7.2 java 1.7.0 apache-hive-1.2.1 mysql Hive配置文件介绍 •hive-site.xml      hive的配置文件 •hiv ...

  7. html用a标签怎么提交表单

    如下代码请 帮忙完善function judgeDelete()   {     if(confirm("确定要删除吗?"))     {      window.location ...

  8. Python之内置函数再总结

    一.数字相关 1.绝对值:abs(-1) 2.最大最小值:max([1,2,3]) ,min([1,2,3]) 3.序列长度:len('abc')  ,  len([1,2,3])  ,  len(( ...

  9. PHP/Yii2操作Cookie,常见问题以及注意事项

    设置Cookie PHP setcookie("name", "Larry",time()+3600 Yii2 $cookies = Yii::$app-> ...

  10. Kattis - pseudoprime 【快速幂】

    题意 给出两个数字 P 和 A 当p 不是素数 并且 满足a^p≡a(mod p) 就输出 yes 否则 输出 no 思路 因为 数据范围较大,用快速幂 AC代码 #include <cstdi ...