我試圖列出一個QFile列表,我選擇了QList方法,但不確定它是否是好方法。我寫了這段代碼,但它無法構建!
QList<QFile> filesList;
QFile file_1(QString("path/to/file_1"));
QFile file_2(QString("path/to/file_2"));
filesList.append(file_1);
filesList.append(file_2);
for(auto& file : filesList){
if(!file.open(QIODevice::ReadOnly)){
qDebug() << "file is not open.";
}
}
生成失敗,出現以下錯誤:
error: ‘QFile::QFile(const QFile&)’ is private within this context
if (QTypeInfo<T>::isLarge || QTypeInfo<T>::isStatic) n->v = new T(t);
^~~~~~~~
使用QList方法制作文件列表以供以后使用,這好嗎?如果是,如何修復我的代碼?
問題似乎是QFile類有一個私有復制構造函數,這意味著它不能被復制。因此,它不能存儲在像QList這樣的容器中。解決這個問題的一種方法是在QList中存儲指向QFile對象的指針,而不是對象本身。
Try this:
Updated version: