我有一个应用程序,可以在 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++;
}
}
文件路径的输出有效,但日期和时间无效。
添加支票怎么样。我会改变类似的东西
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;
}
}