【问题标题】:display all Files in Folder and Subfolder in listWidget在 listWidget 中显示文件夹和子文件夹中的所有文件
【发布时间】:2021-04-29 02:05:40
【问题描述】:

我想显示选定路径中的所有 *.dat 文件,包括子文件夹:我选择的文件夹是“C:\iba\dat”,在 iba 中还有另外两个文件夹 Energie 和 Prozess,在这两个文件夹中是我想在我的 ListWidget 中显示的文件。

FAeingabe::FAeingabe(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::FAeingabe)
{
    ui->setupUi(this);
    //icon
    setWindowIcon(QIcon(":/Icons/icon.ico"));

    QDir myPath("C:\\iba\\dat");
    QStringList nameFilters;
    nameFilters<<"*.dat";
    myPath.setFilter(QDir::AllEntries | QDir::Files | QDir::NoDotAndDotDot | QDir::NoDot);
    faList = myPath.entryList();
    ui->listWidget->addItems(faList);
    ui->total->setText(QString("%1").arg(ui->listWidget->count()));
}

我明白了:

【问题讨论】:

  • 对于文件的递归列表,您可以使用 QDirIteratorSubdirectories 标志。
  • 是的,你说得对。谢谢你:)

标签: c++ qt qlistwidget


【解决方案1】:

首先,你没有使用你的nameFilters。其次,您应该使用 QDirIterator 来获取文件列表。

QDirIterator it(QStringLiteral("C:\\iba\\dat"), QStringList() << "*.dat", QDir::Files, QDirIterator::Subdirectories);
QStringList faList;
while (it.hasNext())
       faList.append(it.next());

【讨论】:

  • 它有效,谢谢。它现在显示所有文件,但完整路径不会打扰我。是否可以只显示文件名而不显示路径?
  • 只需再添加一个变量类型 QFileInfo,并从中获取文件名: while (it.hasNext()) { QFileInfo file(it.next()); faList.append(file.fileName()); }
猜你喜欢
  • 1970-01-01
  • 2020-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-02
  • 2016-02-26
  • 2017-10-08
  • 2018-07-28
相关资源
最近更新 更多