#include "checkfile.h"
#include <QFileInfo>
#include <QDir>
#include <QRegExp>
#include <QDebug>
#include <QCoreApplication>
CheckFile::CheckFile(QString file)
{
qDebug() << "start check " << file;
QFileInfo info(file);
if(info.isFile())
{
isFileContainChinese(file);
}
else if(info.isDir())
{
QDir dir(file);
QFileInfoList fileList = dir.entryInfoList(QDir::Files);
foreach(QFileInfo fileInfo, fileList)
{
isFileContainChinese(fileInfo.absoluteFilePath());
}
}
qDebug() << "end check " << file;
QCoreApplication::exit(0);
}
bool CheckFile::isFileContainChinese(QString absPath)
{
QFile file(absPath);
QString s;
int i = 0;
if(file.open(QIODevice::ReadOnly))
{
while(!file.atEnd())
{
s = file.readLine();
i++;
if(s.contains(QRegExp("[\\x4e00-\\x9fa5]+"))) //判断是否有中文的正则表达式
{
qDebug() << absPath <<",line " << i <<" " << s << " contains chinese";
}
}
file.close();
}
}

本文介绍了一个用于检查文件或目录中是否包含中文字符的C++程序。该程序利用正则表达式来判断文件内容中是否存在中文,并能递归地检查整个目录下的所有文件。

被折叠的 条评论
为什么被折叠?



