void listFile(QTreeWidgetItem *parentWidgetItem, QFileInfo &parent)
{
QDir dir;
dir.setPath(parent.filePath());
dir.setFilter(QDir::Files | QDir::Dirs | QDir::NoSymLinks);
dir.setSorting(QDir::DirsFirst | QDir::Name);
const QFileInfoList fileList = dir.entryInfoList();
for (int i = 0; i < fileList.size(); i++)
{
QFileInfo fileInfo = fileList.at(i);
QStringList fileColumn;
fileColumn.append(fileInfo.fileName());
if (fileInfo.fileName() == "." || fileInfo.fileName() == ".." ); // nothing
else if(fileInfo.isDir())
{
QTreeWidgetItem *child = new QTreeWidgetItem(fileColumn);
child->setIcon(0, QIcon("caterpillar_head.jpg"));
// child->setCheckState(0, Qt::Unchecked);
parentWidgetItem->addChild(child);
// select index of child
listFile(child, fileInfo);
}
else
{
fileColumn.append(QString::number(fileInfo.size()));
QTreeWidgetItem *child = new QTreeWidgetItem(fileColumn);
child->setIcon(0, QIcon("momor_head.jpg"));
// child->setCheckState(0, Qt::Unchecked);
parentWidgetItem->addChild(child);
}
}
}
在调用
// select index
QFileInfo fileInfo(LogicDriverList[1].mountPoint);
QStringList fileColumn;
fileColumn.append(fileInfo.fileName());
QTreeWidgetItem *dir = new QTreeWidgetItem(fileColumn);
dir->setText(0,"d");
dir->setIcon(0, qFileicon.icon(QFileIconProvider::Drive));
// dir->setCheckState(0, Qt::Checked); // 设定可核取的方块
ui->treeWidget->addTopLevelItem(dir);
// select index of child
listFile(dir, fileInfo);
QFileInfo fileInfo2(LogicDriverList[2].mountPoint);
QStringList fileColumn2;
fileColumn2.append(fileInfo2.fileName());
QTreeWidgetItem *dir2 = new QTreeWidgetItem(fileColumn2);
dir2->setText(0,"e");
dir2->setIcon(0, qFileicon.icon(QFileIconProvider::Drive));
// dir->setCheckState(0, Qt::Checked); // 设定可核取的方块
ui->treeWidget->addTopLevelItem(dir2);
// select index of child
listFile(dir2, fileInfo2);