QT之文件操作集锦:
判断目录是否存在
if (!QFileInfo::exists(m_Path))
{
errMsg = QString::fromLocal8Bit("路径不存在:") + m_Path;
return false;
}
删除文件
QFile::remove(IniName);
打开指定目录文件:
QString ModelPath = QFileDialog::getOpenFileName(this, QString::fromLocal8Bit("模型路径"), "./", "*.smartmore");
if (!ModelPath.isEmpty())
{
ui.tableWidget->setItem(row, 1, new QTableWidgetItem(ModelPath));
}
递归搜索文件
QStringList CRecipeManager::getFileNames(const QString &path)
{
QDir dir(path);
return dir.entryList(QStringList("*.ini"), QDir::Files | QDir::Readable, QDir::Name);
}
QStringList RecipeNames = getFileNames(IniPath);
QStringList test::findFiles(const QString &startDir, QStringList filters)
{
QStringList names;
QDir dir(startDir);
//搜索当前目录符合条件的文件
foreach (QString file, dir.entryList(filters, QDir::Files))
names += startDir + '/' + file;
//搜索当前目录的子目录符合条件的文件
foreach (QString subdir, dir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot))
names += findFiles(startDir + '/' + subdir, filters);
return names;
}
返回当前目录下 的 .cpp 和.h文件
QStringList files = findFiles("./", QStringList() << "*.cpp" << "*.h");