1

我有一个文件夹,里面有以下文件夹/文件(粗体文件夹)

1. make_file_example

1.1.main.cpp
1.2.MakeFile
1.3.message.cpp
1.4.message.h

2.makeFileExample.txt
3.other_sources.txt
4.QTnotes.txt

[我在两个不同的位置复制/粘贴同一个文件夹] 在下面的图片中,您可以清楚地看到相同的文件夹放置在不同的位置会产生不同的结果 图像1图2

我使用的代码片段如下:

   void MainWindow::on_pushButton_browse_clicked()
{
    ui->textBrowser_filename->setLineWrapMode(QTextEdit::NoWrap);
    ui->textBrowser_filename->setText("");
    QString dir= QFileDialog::getExistingDirectory(this, tr("Open Directory"),
                                                   "/home",
                                                   QFileDialog::ShowDirsOnly
                                                   | QFileDialog::DontResolveSymlinks);
    ui->lineEdit_dir->setText(dir);
    QDirIterator it(dir, QDir::NoDotAndDotDot | QDir::AllEntries , QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
    while(it.hasNext())
    {
        QString path=it.fileName();
        ui->textBrowser_filename->append(path);
        it.next();
    }
}
4

1 回答 1

0

罪魁祸首是next()在更改while循环中打印路径后调用的函数textBrowser_filename,如下所示:

while(it.hasNext())
    {
        it.next();
        QString path=it.fileName();
        ui->textBrowser_filename->append(path);        
    }

如果条目仍然存在,如hasNext()函数所说,则必须首先对其进行迭代。

于 2017-10-06T13:28:48.210 回答