lastModified() bei QUrlInfo ist leer



  • Hi,

    Ich möchte über eine FTP-Verbindung eine Verzeichnis auslesen, dabei sollen der Dateinname, die Größe der Datei, als auch das "Letzte Änderung am" ausgelesen und in eime QTreeWidget angezeigt werden. Den Namen und die größe liest es wunderbar aus, jedoch zeigt es mir das Datum nicht an.
    Kann es sein dass es sich hierbei um einen Bug handelt oder mache ich einfach nur irgendwas falsch.
    Hier mal der Code der Klasse

    #ifndef FILETREEWIDGET_H
    #define FILETREEWIDGET_H
    
    #include <QTreeWidget>
    #include <QFtp>
    
    class fileTreeWidget : public QTreeWidget
    {
    	Q_OBJECT;
    public:
    	fileTreeWidget(QWidget *parent = 0);
    	~fileTreeWidget(){}
    	void setPath(QString);
    private slots:
            void connectToFtpServer();
            void ftpCommandFinished(int commandId, bool error);
            void addToList(const QUrlInfo &urlInfo);
    private:
    	bool isDirectoryEmpty;
    	QFtp *ftp;
    	QString currentFilePath;
    };
    
    #endif
    
    fileTreeWidget::fileTreeWidget(QWidget *parent)
        : QTreeWidget(parent)
    {
        QStringList headers;
        setColumnCount(3);
        headers << "Dateinname" << "Erstellte am" <<  "Größe";
        setHeaderLabels(headers);
        setRootIsDecorated(false);
        isDirectoryEmpty = true;
        ftp = new QFtp(this);
    
        connect(ftp, SIGNAL(commandFinished(int, bool)),
                this, SLOT(ftpCommandFinished(int, bool)));
        connect(ftp, SIGNAL(listInfo(const QUrlInfo &)),
                this, SLOT(addToList(const QUrlInfo &)));
        connectToFtpServer();
    }
    void fileTreeWidget::setPath(QString filePath_)
    {
        ftp->cd(currentFilePath = filePath_);
    }
    void fileTreeWidget::connectToFtpServer()
    {
        ftp->connectToHost("xxxxxxxx");
        ftp->login("xxxxxxx","xxxxxxxx");
    }
    void fileTreeWidget::ftpCommandFinished(int, bool error)
    {
        if (ftp->currentCommand() == QFtp::ConnectToHost) {
            if (error) {
                QMessageBox::information(this, tr("FTP"),
                                         tr("Verbindung zu FTP-Server \"wmftp.wmgruppe.de\" konnte nicht hergestellt werden!\n"));                                     
                return;
            }
            return;
        }
        if (ftp->currentCommand() == QFtp::List) {
            if (isDirectoryEmpty) {
                addTopLevelItem(new QTreeWidgetItem());
    	    topLevelItem(0)->setText(0,tr("<leer>"));
                setEnabled(false);
            }
        }
        if(ftp->currentCommand() == QFtp::Cd) {
            if(error){
    	    QMessageBox::information(this, tr("FTP"),tr("Das Verzeichnis \"") + currentFilePath + tr("\" existiert nicht")); 
    	    return;
    	}
    	ftp->list();
        }
    }
    
    void fileTreeWidget::addToList(const QUrlInfo &urlInfo)
    {
        if(!urlInfo.isFile())
            return;
        QTreeWidgetItem *item = new QTreeWidgetItem;
        item->setText(0,urlInfo.name());
        item->setText(1,urlInfo.lastModified().toString(Qt::ISODate));
        item->setText(2,QString::number(urlInfo.size())+" KB");
    
        isDirectoryEmpty = false;
        addTopLevelItem(item);
        if (!currentItem()) {
           setCurrentItem(this->topLevelItem(0));
           setEnabled(true);
        }
        for(int i = 0; i < columnCount();i++)
            this->resizeColumnToContents(i);
    }
    

Anmelden zum Antworten