qt遍历文件夹
Ⅰ qt 用什么方法使函数不被打断
如果你实在想用qt又要用c/c++标准库,那么 qt for vs 倒是一个不错的选择,可惜貌似你在Linux使用的。程序编译出错,很有可能是因为找不到你用到某些函数的头/库文件。
不过你既然都用到qt了,建议还是用qt提供的一整套机制来实现你的程序,对于你问题中提到的需求,可以有下面的解决方式:
用QDir类可以实现对所有目录/文件的遍历操作,
用QFile/QTextStream可以实现对文件读写的操作等。
qt提供的接口都很友好,你稍微看一下qt的帮助文档就知道应该怎么用了。不过如果你是想把一个C语言做的项目用qt重做的话,那就当我什么都没有说了~
Ⅱ 《qt》中如何提取当前目录下指定后缀名的文件
QFileInfoList InfoList = QDir(qApp->applicationDirPath()).entryInfoList();//获取当前目录所有文件
QFileInfoList SuffixInfoList;//定义放提取文件的List
//遍历
foreach(QFileInfo fileInfo, QFileInfoList)
{
if(!fileInfo.isFile()) continue;//不是文件继续,只用于加速,可不加
//后缀不区分大小写,需要区分直接用“==”
if(0==fileInfo.suffix().compare(后缀), Qt::Caseinsensitive)
{
SuffixInfoList << fileInfo;//指定后缀,加入列表
}
}
以上纯为手打,不是Copy的,可能有些拼写错误大小写错误什么的,望谅解
Ⅲ 如何在QT中写C函数
如果你实在想用qt又要用c/c++标准库,那么 qt for vs 倒是一个不错的选择,可惜貌似你在Linux使用的。程序编译出错,很有可能是因为找不到你用到某些函数的头/库文件。
不过你既然都用到qt了,建议还是用qt提供的一整套机制来实现你的程序,对于你问题中提到的需求,可以有下面的解决方式:
用QDir类可以实现对所有目录/文件的遍历操作,
用QFile/QTextStream可以实现对文件读写的操作等。
qt提供的接口都很友好,你稍微看一下qt的帮助文档就知道应该怎么用了。不过如果你是想把一个C语言做的项目用qt重做的话,那就当我什么都没有说了~
Ⅳ QT编程中对于文件操作的程序讲解,最好是把下面的程序一句一句的解释下:在线等,十分感谢
void funlibEdit::InitTypeData()
{
//读基本类型
QFile file("datatype"); //datatype为读取的文件名,这里可以为路径,否则表示为当前路径
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) //设置为Text方式只读,并判断是否打开
return; //若打开失败直接返回
QTextStream in(&file); //将内容读到文本流中,即in中为datatype中的所有内容
while (!in.atEnd()) //循环遍历到结束
{
QString loctype = in.readLine(); //读一行到locttupe
loctype = loctype.simplified(); //这个应该是化简,具体我不清楚,你可以去看下手册simplified的函数功能
m_typelist.append(loctype); //在m_typelist这段字符串之后加上loctype这个字符串
}
file.close(); //关闭打开的datatype文件
//读类型映射
QFile mapfile("datatypemap");
if (!mapfile.open(QIODevice::ReadOnly | QIODevice::Text)) //同上判断
return;
QTextStream mapin(&mapfile); //同上
while (!mapin.atEnd()) //同上
{
QString mapline = mapin.readLine(); //同上
int index = mapline.indexOf(":"); //所以“:”,返回位置
QString outtype = mapline.left(index).simplified(); //同上
QString intype = mapline.right(mapline.length()-index-1).simplified(); //同上
m_typemap[outtype] = intype; //放到数组中,功能同上
}
mapfile.close(); //同上
}
Ⅳ qt中怎样遍历一个txt文件内容
//用文件流来读取
QFilefile("my.txt");
file.open(QIODevice::ReadOnly);
QTextStramout(&file);
while(!out.atEnd()){
//每次读取一行,然后判断即可
QStringstrReadLine=out.readLine();
}
Ⅵ 请问QT中一次载入一个文件夹的图片并可以一张一张的显示出来该该怎么做呢
把文件夹里的图片路径保存在QStringList当中,实现对QStringList的遍历,这样就可以实现一张一张的显示了
Ⅶ qt qmultimap 哪种遍历器 效率好
依然要遍历了,那就就得写循环了,上下的就是把你的变量面弄进循环里面去 剩下的就是变量后面直接往出点,一般就是你要的属性,或者就是get什么的
Ⅷ QT中遍历一个文件夹并给文件夹中的每个文件改名字,如何构造遍历文件夹的迭代器,请高手指教啊
QDirIterator it("/etc", QDirIterator::Subdirectories);
while (it.hasNext()) {
qDebug() << it.next();
// /etc/.// /etc/..// /etc/X11// /etc/X11/fs// ...
}
迭代器不用自己写 还有只是重命名文件名不用打开文件的 我没具体写 你先试试吧
Ⅸ QT treewideget怎么实现显示一个文件及文件夹里面的子文件夹
这个可以使用QTreeview和QFileSystemModel:官方文档例子如下:
It is simple to construct a tree view displaying data from a model. In the following example, the contents of a directory are supplied by a QFileSystemModel and displayed as a tree:
QFileSystemModel *model = new QFileSystemModel;
model->setRootPath(QDir::currentPath());
QTreeView *tree = new QTreeView(splitter);
tree->setModel(model);
如果要使用QTreeWidget 就要使用QFileInfo对文件夹进行遍历,挨个添加到QTreeWidget中。有关QFileInfo请参考帮助文档:http://qt-project.org/doc/qt-4.8/qfileinfo.html
Ⅹ qt 读取目录下的文件个数 包括各种的子目录下的文件只要是在这个大目录下的
//下面只是一个思路示例,不保证语法完全正确。
qint64GetFolderSize(QStringfolder)
{
QDirdir(folder);
if(!dir.exists())
return0;
qint64totalsize=0;
QFileInfoListlist=dir.entryInfoList();
for(intii=0;ii<list.size();ii++)
{
QFileInfofileInfo=list.at(ii);
if(fileInfo.isFile())
totalsize+=fileInfo.size();
elseif(fileInfo.isDir())
{
totalsize+=GetFolderSize(fileInfo.path);
}
}
returntotalsize;
}