【代码片段】Qt6.2.4 C++ 替换文件内容
参考
- https://blog.csdn.net/xi__q/article/details/55050120
- https://blog.csdn.net/kllo__/article/details/120176545
- https://blog.csdn.net/u013625961/article/details/77031051
环境
| 环境 | 版本 | 
|---|---|
| windows | 10 | 
| QT | 6.2.4 | 
| Qt Creator | 8.0.1 (Community) | 
| qmake | 
注意
没找到修改指定行的方式。。。
本代码只适用于小文件的读取写入,大文件会导致内存不够。
代码
        QString apacheHttpdConfPath = file.filePath() + "/Apache24/conf/httpd.conf";
        // 读取旧文件内容
        QFile apacheHttpdConf(apacheHttpdConfPath);
        apacheHttpdConf.open(QIODevice::ReadOnly);
        QString newFileContent;
        while(!apacheHttpdConf.atEnd())
        {
            QByteArray row = apacheHttpdConf.readLine();
            QString s = row.data();
            // 判断修改的文件位置,并且防止重复写入,判断当前路径是否和配置文件内容一致,一致则不修改
            if(s.startsWith("Define SRVROOT") && !s.startsWith("Define SRVROOT \""+file.filePath()+"/Apache24\"")){
                newFileContent.append("# "+QString::fromLocal8Bit("配置目录修改,注释当前旧配置 ")+QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss:zzz") + "\r\n");
                newFileContent.append("# "+s);
                newFileContent.append("Define SRVROOT \""+file.filePath()+"/Apache24\" \r\n");
            }else{
                newFileContent.append(s);
            }
        }
        apacheHttpdConf.close();
        // 旧文件清空并将最新文件内容写入
        apacheHttpdConf.open(QIODevice::WriteOnly | QIODevice::Truncate);
        QTextStream apacheHttpdConfStream(&apacheHttpdConf);
        apacheHttpdConfStream << newFileContent;
        apacheHttpdConf.close();
    博  主 :夏秋初
地 址 :https://www.cnblogs.com/xiaqiuchu/p/16725956.html
 
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
    
地 址 :https://www.cnblogs.com/xiaqiuchu/p/16725956.html
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号