1 Star 0 Fork 3

Lynchrs/calcCodeLine

forked from chen227/calcCodeLine 
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
CalcCode.cpp 1.57 KB
一键复制 编辑 原始数据 按行查看 历史
chen227 提交于 2018-03-27 10:46 +08:00 . first commit
#include "CalcCode.h"
#include <QFile>
#include <QDir>
#include <QVariantList>
#include <QDebug>
#include <QFileInfoList>
#include <QTextStream>
#include <QIODevice>
CalcCode::CalcCode(QObject *parent):QThread(parent)
{
}
CalcCode::~CalcCode()
{
}
void CalcCode::run()
{
m_list.clear();
readFiles();
emit getValue(m_list);
}
void CalcCode::readFiles()
{
QDir dir(m_path);
calc(dir);
}
void CalcCode::setPath(const QString &path)
{
m_path = path;
}
//迭代
void CalcCode::calc(const QDir &dir)
{
QStringList filters;
filters<<"*";
QFileInfoList list = dir.entryInfoList(filters,QDir::NoDotAndDotDot | QDir::AllEntries,QDir::NoSort);
for(int i=0;i<list.length();i++){
QFileInfo fileInfo = list.at(i);
if(fileInfo.isDir()){
//目录
QDir tempDir(fileInfo.filePath());
calc(tempDir);
}
else{
//文件
calcLine(fileInfo.filePath());
}
}
}
void CalcCode::calcLine(const QString path)
{
QFile file(path);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
qDebug()<<"open error";
return;
}
//
int num = 0;
QTextStream stream(&file);
QString line;
while (stream.readLineInto(&line)) {
num++;
}
QStringList fileList = file.fileName().split(".");
QVariantMap map;
map.insert("filePath",file.fileName());
map.insert("lineNum",num);
map.insert("type",fileList.at(fileList.length()-1));
getOneValue(map); //item
m_list.append(map);
file.close();
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/lynchrs/calcCodeLine.git
git@gitee.com:lynchrs/calcCodeLine.git
lynchrs
calcCodeLine
calcCodeLine
master

搜索帮助