資源簡介
本來是打算用新的類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
評論
共有 條評論