DateTime .lastModified() 为空

问题描述 投票:0回答:1

我有一个应用程序,可以在 QTableView 中显示文件的日期和时间以及文件路径。我使用以下代码来获取文件的日期和时间并显示路径和日期和时间。

包含文件的目录不为空。

void printOutput(std::set<std::string> files, QStandardItemModel* model) 
{
    model->setRowCount(files.size());           
    int row = 0;

    for (const auto& str : files) {
        QFileInfo info(QString::fromStdString(str));
        QStandardItem* fileItem = new QStandardItem(QString::fromStdString(str));

        //QString dateformat = "dd/MM/yyyy h:mm";
        //QDateTime dt = QDateTime::fromString(info.birthTime().toString(), dateformat);
        //QString dtstr = dt.toString();
        //QStandardItem* dt_item = new QStandardItem(dtstr);
        QDateTime datetime = info.lastModified();
        QString formattedDateTime = datetime.toString();
        QStandardItem* dateItem = new QStandardItem(formattedDateTime);
        
        //to check the ouput --> is empty
        QMessageBox msg;
        msg.setText(formattedDateTime);
        msg.exec();
        
        model->setItem(row, 0, dateItem);
        model->setItem(row, 1, fileItem);
        
        row++;
    }
}

文件路径的输出有效,但日期和时间无效。

c++ qt c++17
1个回答
0
投票

添加支票怎么样。我会改变类似的东西

void printOutput(const std::set<std::string>& files, QStandardItemModel* model) 
{
    model->setRowCount(files.size());           
    int row = 0;
    for (const auto& str : files) {
        const auto filename = QString::fromStdString(str);
        QFileInfo info(filename);
        if (!info.exists()) {
            QMessageBox::warning(nullptr, "printOutput", QString("%1 don't exist").arg(filename));
            continue;
        }
        const auto datetime = info.lastModified();
        auto* dateItem = new QStandardItem(datetime.toString());

        auto* fileItem = new QStandardItem(filename);
        
        model->setItem(row, 0, dateItem);
        model->setItem(row, 1, fileItem);
        
        ++row;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.