资源简介
本来是打算用新的类QNetworkAccessManager实现的客户端的文件上传、下载、新建文件夹、重命名、删除和刷新等功能,但是QNetworkAccessManager没有提供原本在QFtp提供的list()、cd()、remove()、mkdir()、rmdir()、rename() 和 rawCommand()等操作,所以无奈之下只能选用了旧版本的QFtp来实现,毕竟既然官方都废弃了QFtp而选用QNetworkAccessManager来代替,那肯定是后者比前者更加可靠稳定。
虽然QFtp在Qt5.0之后就被官方移除了,但是其基本功能还是挺全的,虽然在上传下载文件的时候带中文时会乱码,但也是能解决的。
最近在做一个项目也是用到了QFtp上传文件到别人的服务器,突然就想到了要做一个简单的客户端实现其基本的功能,于是在闲暇时就慢慢的把功能给加上去了,虽然有点简陋但是还是实现了有不少的功能,当然也包括了前面提到上传下载带中文的文件乱码问题。
原文连接:https://blog.csdn.net/Ilson_/article/details/98371848
代码片段和文件信息
#include “Global.h“
#include
QIcon folderIcon()
{
SHFILEINFOA info;
if (SHGetFileInfoA(QString(“folder“).toUtf8()
FILE_ATTRIBUTE_DIRECTORY
&info
sizeof(info)
SHGFI_SYSICONINDEX | SHGFI_ICON | SHGFI_USEFILEATTRIBUTES))
{
return QIcon(QtWin::fromHICON(info.hIcon));
}
return QIcon();
}
QIcon fileIcon(QString fileName)
{
if (fileName.isEmpty())
return QIcon();
int index = fileName.lastIndexOf(“.“);
QString suffix = fileName.mid(index);
std::string stdSuffix = suffix.toUtf8().constData();
SHFILEINFOA info;
if (SHGetFileInfoA(stdSuffix.c_str()
FILE_ATTRIBUTE_NORMAL
&info
sizeof(info)
SHGFI_SYSICONINDEX | SHGFI_ICON | SHGFI_USEFILEATTRIBUTES))
{
return QIcon(QtWin::fromHICON(info.hIcon));
}
return QIcon();
}
QString folderType()
{
SHFILEINFOA info;
if(SHGetFileInfoA(QString(“folder“).toUtf8()
FILE_ATTRIBUTE_DIRECTORY
&info
sizeof(info)
SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES))
{
return QString::fromLocal8Bit(info.szTypeName);
}
return QString();
}
QString fileType(QString fileName)
{
if (fileName.isEmpty())
return QString();
int index = fileName.lastIndexOf(“.“);
QString suffix = fileName.mid(index);
std::string szSuffix = suffix.toUtf8().constData();
SHFILEINFOA info;
if(SHGetFileInfoA(szSuffix.c_str()
FILE_ATTRIBUTE_NORMAL
&info
sizeof(info)
SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES))
{
return QString::fromLocal8Bit(info.szTypeName);
}
return QString();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1249 2019-08-03 20:24 FtpClient\FtpClient.pro
文件 14441 2019-08-03 13:05 FtpClient\FtpClient.pro.user
文件 1983 2019-08-03 10:39 FtpClient\Global.cpp
文件 253 2019-08-03 10:39 FtpClient\Global.h
文件 40565 2019-05-12 17:54 FtpClient\logo.jpg
文件 177 2019-08-02 22:01 FtpClient\main.cpp
文件 14790 2019-08-03 20:32 FtpClient\MainWnd.cpp
文件 2132 2019-08-03 13:04 FtpClient\MainWnd.h
文件 6894 2019-08-03 00:45 FtpClient\MainWnd.ui
文件 472 2019-08-02 23:40 FtpClient\MyTableWidget.cpp
文件 372 2019-08-02 23:37 FtpClient\MyTableWidget.h
文件 76909 2014-11-07 21:04 FtpClient\qftp.cpp
文件 4810 2019-07-30 20:27 FtpClient\qftp.h
文件 16667 2014-11-07 21:04 FtpClient\qurlinfo.cpp
文件 4532 2014-11-07 21:04 FtpClient\qurlinfo.h
文件 96 2019-08-03 20:24 FtpClient\resource.qrc
目录 0 2019-08-03 20:32 FtpClient
----------- --------- ---------- ----- ----
186342 17
评论
共有 条评论