当前位置: 首页 > wzjs >正文

健身网站开发过程中遇到的麻烦一级域名二级域名三级域名的区别

健身网站开发过程中遇到的麻烦,一级域名二级域名三级域名的区别,遵义疫情最新数据消息,房屋设计软件免费版文件操作 1. 文件读写 QFile - 基本文件操作 // 只写模式创建文件(如果文件已存在会清空内容) file.open(QIODevice::WriteOnly);// 读写模式创建文件 file.open(QIODevice::ReadWrite);// 追加模式(如果文件不存在则创建) fil…

文件操作

1. 文件读写

QFile - 基本文件操作

// 只写模式创建文件(如果文件已存在会清空内容)
file.open(QIODevice::WriteOnly);// 读写模式创建文件
file.open(QIODevice::ReadWrite);// 追加模式(如果文件不存在则创建)
file.open(QIODevice::Append);// 文本模式(处理换行符转换)
file.open(QIODevice::WriteOnly | QIODevice::Text);
// 读取文件
QFile file("test.txt");
if(file.open(QIODevice::ReadOnly | QIODevice::Text)) {QTextStream in(&file);QString content = in.readAll();file.close();
}// 写入文件
QFile outFile("output.txt");
if(outFile.open(QIODevice::WriteOnly | QIODevice::Text)) {QTextStream out(&outFile);out << "Hello QT!" << Qt::endl;outFile.close();
}

检查并创建文件(避免覆盖)

void createFileIfNotExists() {QString filename = "newfile.txt";if (QFile::exists(filename)) {qDebug() << "文件已存在";return;}QFile file(filename);if (file.open(QIODevice::WriteOnly)) {qDebug() << "文件创建成功";file.close();}
}

QTextStream - 文本流操作

QFile file("data.txt");
if(file.open(QIODevice::ReadWrite | QIODevice::Text)) {QTextStream stream(&file);stream.setCodec("UTF-8");  // 设置编码QString line;while(!stream.atEnd()) {line = stream.readLine();  // 逐行读取}
}

QDataStream - 二进制数据操作

QFile file("data.bin");
if(file.open(QIODevice::WriteOnly)) {QDataStream out(&file);out << QString("QT") << qint32(123) << 3.14159;file.close();
}void createBinaryFile() {QFile file("data.bin");if (file.open(QIODevice::WriteOnly)) {QDataStream out(&file);out << quint32(0x12345678);  // 写入32位无符号整数out << 3.1415926;           // 写入双精度浮点数file.close();}
}

2. 文件信息

QFileInfo - 获取文件信息

QFileInfo info("example.txt");
qDebug() << "文件大小:" << info.size();
qDebug() << "创建时间:" << info.created();
qDebug() << "最后修改时间:" << info.lastModified();
qDebug() << "文件路径:" << info.absoluteFilePath();
qDebug() << "后缀名:" << info.suffix();
qDebug() << "是否存在:" << info.exists();

3. 文件操作

// 复制文件
QFile::copy("source.txt", "dest.txt");// 重命名文件
QFile::rename("old.txt", "new.txt");// 删除文件
QFile::remove("fileToDelete.txt");// 文件是否存在
bool exists = QFile::exists("test.txt");
 

文件夹操作

1. 目录操作

QDir - 基本目录操作

// 创建目录
QDir().mkdir("newDir");// 创建多级目录
QDir().mkpath("path/to/new/dir");// 删除目录
QDir().rmdir("emptyDir");  // 只能删除空目录
QDir().rmpath("path/to/dir");  // 可以删除多级空目录// 重命名目录
QDir().rename("oldDir", "newDir");// 检查目录是否存在
bool dirExists = QDir("myDir").exists();

2. 遍历目录

QDir dir("/path/to/directory");// 获取所有文件和目录
QStringList entries = dir.entryList(QDir::NoDotAndDotDot | QDir::AllEntries);// 获取所有文件(不包括目录)
QStringList files = dir.entryList(QDir::Files);// 获取特定类型的文件
QStringList images = dir.entryList(QStringList() << "*.jpg" << "*.png", QDir::Files);// 递归遍历目录
void traverseDir(const QString &path) {QDir dir(path);foreach(QFileInfo info, dir.entryInfoList(QDir::NoDotAndDotDot | QDir::Dirs | QDir::Files)) {if(info.isDir()) {traverseDir(info.absoluteFilePath());} else {qDebug() << "File:" << info.absoluteFilePath();}}
}

3. 路径操作

QString path = "/home/user/docs/report.txt";// 获取文件名
QString fileName = QFileInfo(path).fileName();  // "report.txt"// 获取基本名(无后缀)
QString baseName = QFileInfo(path).baseName();  // "report"// 获取目录路径
QString dirPath = QFileInfo(path).absolutePath();  // "/home/user/docs"// 组合路径
QString newPath = QDir("/home/user").filePath("downloads");  // "/home/user/downloads"// 清理路径中的冗余部分
QString cleanPath = QDir::cleanPath("/home//user/../user/docs");  // "/home/user/docs"//将路径中的分隔符转换为当前系统的本地分隔符
QString path = "C:/Qt/examples/widgets";
QString nativePath = QDir::toNativeSeparators(path);
// 在Windows上返回 "C:\Qt\examples\widgets"
// 在Linux/macOS上保持不变 "C:/Qt/examples/widgets"//将本地分隔符转换为通用的正斜杠 /
QString nativePath = "C:\\Qt\\examples\\widgets";
QString genericPath = QDir::fromNativeSeparators(nativePath);
// 返回 "C:/Qt/examples/widgets" (所有平台)//直接使用正斜杠 /
//Qt 内部会自动处理路径分隔符,因此最简单的方法是始终使用正斜杠:
QString path = "C:/Qt/examples/widgets";  // 在所有平台上都有效
QFile file(path);  // Qt会自动处理分隔符转换

高级操作

1. 文件监视

QFileSystemWatcher watcher;
watcher.addPath("/path/to/file.txt");
watcher.addPath("/path/to/directory");QObject::connect(&watcher, &QFileSystemWatcher::fileChanged, [](const QString &path) { qDebug() << "File changed:" << path; });QObject::connect(&watcher, &QFileSystemWatcher::directoryChanged, [](const QString &path) { qDebug() << "Directory changed:" << path; });

2. 临时文件

// 自动删除的临时文件
QTemporaryFile tempFile;
if(tempFile.open()) {tempFile.write("Temporary data");tempFile.close();qDebug() << "Temp file path:" << tempFile.fileName();
}// 带特定后缀的临时文件
QTemporaryFile tempFileWithSuffix("prefix_XXXXXX.suffix");
if(tempFileWithSuffix.open()) {// 使用临时文件
}

3. 原子写入操作(QSaveFile)

QSaveFile file("important.dat");
if(file.open(QIODevice::WriteOnly)) {QDataStream out(&file);out << "Critical data";// 只有commit()成功才会替换原文件if(!file.commit()) {qDebug() << "Save failed:" << file.errorString();}
}

跨平台注意事项

  1. 路径分隔符:始终使用/,QT会自动转换为平台正确的分隔符

  2. 路径大小写:Windows不敏感,Linux/Mac敏感

  3. 标准路径:使用QStandardPaths获取标准目录

QString desktopPath = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
QString docPath = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
QString tempPath = QStandardPaths::writableLocation(QStandardPaths::TempLocation);

错误处理

QFile file("nonexistent.txt");
if(!file.open(QIODevice::ReadOnly)) {switch(file.error()) {case QFile::ReadError:qDebug() << "Read error:" << file.errorString();break;case QFile::PermissionsError:qDebug() << "Permission denied:" << file.errorString();break;default:qDebug() << "Error:" << file.errorString();}
}

性能提示

  1. 处理大文件时避免使用readAll(),改为分块读取

  2. 批量文件操作考虑使用QDirIterator提高效率

  3. 频繁访问的文件信息可以缓存QFileInfo对象

// 高效遍历大目录
QDirIterator it("/path/to/dir", QDirIterator::Subdirectories);
while(it.hasNext()) {qDebug() << it.next();
}
http://www.dtcms.com/wzjs/55289.html

相关文章:

  • 黑龙江省住房与建设厅网站免费顶级域名注册
  • h5自适应企业网站源码百度有刷排名软件
  • 福建省住房和城乡建设厅网站怎么自己找外贸订单
  • 设计品牌网站公司专业技能培训机构
  • 闵行交大网站建设下载百度网盘app
  • 注册网址的网站武汉seo搜索引擎优化
  • 珠海企业网站建设费用百度网盘资源分享
  • 视频 收费 网站怎么做市场调研分析报告
  • 网站有源代码如何做seo网络营销毕业论文范文
  • 各网站提交入口互联网服务平台
  • 武汉最好的网站建设公司网络营销首先要
  • 拿word如何做网站谷歌seo工具
  • 社区智慧警务网站如何推进警务室建设方案网站首页快速收录
  • 赌博网站怎么建设百度统计代码安装位置
  • 橙子建站验证码是干啥的中国十大公关公司排名
  • asp.net做网站的流程免费换友情链接
  • 安徽网站建设网络公司热搜榜排名今日第一
  • 开源公司网站seo公司哪家好用
  • 山东大学网站设计与建设四川seo整站优化费用
  • 杭州九鸿科技网站开发徐州网站设计
  • dtcms网站开发教程网络营销站点推广的方法
  • 别人做的网站怎么seo优化手机百度app下载安装
  • 免费crm软件排名深圳seo网络优化公司
  • 做动态网站的用工具栏芒果视频怎样下载到本地
  • 龙华附近网站建设公司在线种子资源库
  • 南通企业建设网站电话seo搜索引擎优化心得体会
  • 果麦传媒的网站怎么做的2021年网络十大关键词
  • 宝安高端网站设计怎么样百度开店怎么收费
  • 爱情动做网站推荐qq群排名优化软件购买
  • 建设银行反钓鱼网站什么叫做优化