2017-10-05 102 views
1

我有一個文件夾內,我有下面的文件夾(或多個)/文件(S) (文件夾以粗體顯示)爲什麼QIterator對象對於放置在兩個不同位置的相同文件夾的行爲不同?

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

[我已經複製/粘貼在同一個文件夾中的兩個不同的位置] 在下面的圖片,你可以清楚地看到文件夾如何同樣放置在不同的位置時,得到不同的結果 image1image2

我使用的代碼片段如下:

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(); 
    } 
} 
+0

您沒有顯示任何文件碰巧是枚舉中的最後一個。 –

回答

0

罪魁禍首是next()功能在textBrowser_filename改變印刷while循環的路徑後,被稱爲如下:由hasNext()功能說,它必須

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

條目是否仍然存在,先迭代。

相關問題