我正在寫一個C++應用程序,它只寫入文本文件中尚未包含的新文本,但到目前爲止我無法獲得我的實現獲得的結果沒有工作。即使文本已包含,文本也會寫入文本文件。如何僅將新文本寫入文本文件
我會做什麼錯?
以下是我迄今爲止的實施情況。
void ScanDir::qDirIteratorScanner()
{
QDirIterator it(this -> basePath, QDir::Files, QDirIterator::Subdirectories);
while (it.hasNext())
{
paths = scanned();
qDebug() << "Collected : " << paths.size();
if (!paths.contains(it.next())) {
WriteToFile writeToFile(basePath, it.next());
paths << it.next();
}
else {
qDebug() << "Already put : " << it.next();
}
}
}
QStringList ScanDir::scanned()
{
QStringList paths;
QFile dataFile(basePath + "data.txt");
QTextStream in (&dataFile);
if (dataFile.open(QIODevice::ReadOnly))
{
QTextStream in(&dataFile);
while (!in.atEnd())
{
QString line = in.readLine();
paths << line;
}
dataFile.close();
}
return paths;
}
WriteToFile::WriteToFile(QString path, QString data)
{
path = "E:/Data.txt";
QFile file(path);
if (file.open(QFile::Append))
{
QTextStream stream(&file);
stream << data << endl;
qDebug() << "Writting: " << data + "\r\n";
}
}
scan()會返回您認爲應該如何處理的內容嗎? – UKMonkey
是的,它確實有效,完美@UKMonkey。 –
那麼,如果你的'路徑'是你所期望的那樣,那麼無論是it.next()都不是你認爲的那樣,或者路徑.contains不會做你認爲它的做法...... – UKMonkey