gpt4 book ai didi

c++ - qt c++ 中的多个文件阅读器

转载 作者:行者123 更新时间:2023-11-27 23:17:31 25 4
gpt4 key购买 nike

我想指定一个文件夹的路径,并想依次打开该文件夹中的所有 xslt 文件。

我试着这样做:

 QString path = "/misc/example";
QDir dir(path);
QStringList filters;
filters << "*.xslt";

foreach (QFile file, dir.entryList(filters, QDir::Files))
{
if( !inFile.open( QIODevice::ReadOnly | QIODevice::Text ) )
{
qDebug("Failed to open file for reading.");
return 0;
}
}

但是我得到这个错误

/usr/include/qt4/QtCore/qfile.h:209: Fehler:'QFile::QFile(const QFile&)' is private

我做错了什么?

最佳答案

entryList 返回 QStringList 但不是 QFiles 的某个容器。所以你应该这样做

...
foreach ( QString fileName, dir.entryList(filters, QDir::Files) )
{
QFile inFile( fileName );
if( !inFile.open( QIODevice::ReadOnly | QIODevice::Text ) )
{
qDebug("Failed to open file for reading.");
return 0;
}
}

为了避免使用 foreach 和制作文件名列表的巨大开销,我建议使用 QDirIterator

QDirIterator dirIt( path, filters, QDirIterator::Subdirectories );
while ( it.hasNext() )
{
QFile inFile( it.next() );
if( !inFile.open( QIODevice::ReadOnly | QIODevice::Text ) )
{
qDebug("Failed to open file for reading.");
return 0;
}
}

关于c++ - qt c++ 中的多个文件阅读器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15523527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com