专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > QT开发

QT中的QDir:remove函数删除不了文件?其实主要是如何写入配置文件

发布时间:2010-05-30 21:33:15 文章来源:www.iduyao.cn 采编人员:星星草
QT中的QDir:remove函数删除不了文件?其实主要是怎么写入配置文件。
主要是为了读写配置文件。WINDOWS下没问题了,但是在linux下就只能读,写不了,就是覆盖不了源文件,
  后来换了个思路,先删除,后写入,结果还是不行,删除不了。。貌似也不是权限的问题。
  但是在其他目录下,还是能创建一个文件的,就是不能通过代码覆盖和删除。
  希望高手给点思路,或者是解决的方法。谢谢
  这段代码主要是针对IP的读写的。读就是上面这段是没有问题的。下面那段写不了

  QSettings *ConfigIni = new QSettings("/etc/eth0-setting",QSettings::IniFormat,0);
  ui->ipInfoLineEdit->setText(ConfigIni->value("IP").toString());//IP地址
  ui->maskInfoLineEdit->setText(ConfigIni->value("Mask").toString()); //子网掩码
  ui->gatewayInfoLineEdit->setText(ConfigIni->value("Gateway").toString());//子网掩码
  ui->dnsInfoLineEdit->setText(ConfigIni->value("DNS").toString());//DNS
  ui->macInfoLineEdit->setText(ConfigIni->value("MAC").toString());//mac
===================================================================*/
void ipset::ipconfig_set_infile()
{
  //删除原有配置文件

  QDir rmfile;
  rmfile.remove("/home/eth0-setting");//windows下可以不要这两句。可以覆盖原文件。


  QSettings *ipConfigIni = new QSettings("/home/eth0-setting",QSettings::IniFormat,0);
  //QSettings *ipConfigIni = new QSettings("/home/eth_setting",QSettings::IniFormat,0);
  ipConfigIni->setIniCodec("UTF-8"); //设置文件格式为UTF-8
  ipConfigIni->setValue("IP",ui->ipInfoLineEdit->text());//写入配置文件中Ip配置参数
  ipConfigIni->setValue("Mask",ui->maskInfoLineEdit->text());//写入配置文件中Mask配置参数
  ipConfigIni->setValue("Gateway",ui->gatewayInfoLineEdit->text());//写入配置文件中Gateway配置参数
  ipConfigIni->setValue("DNS",ui->dnsInfoLineEdit->text());
  ipConfigIni->setValue("MAC",ui->macInfoLineEdit->text());
  delete ipConfigIni;
}

------解决方案--------------------
为什么要在/home 下直接写文件呢?

你ls看一下,home是root的,其它用户是不能写的。

你可以尝试以root权限运行你的程序,应该没问题的。
------解决方案--------------------
lz,何不换种思路呢! 其实要重新写入这些配置很简单啦,例如

写入的配置文件如下
C/C++ code

        writeConfig->beginGroup("STATION");
        writeConfig->setValue("officeName", Appconfig::officeName ());
        writeConfig->setValue("stationName", Appconfig::stationName ());
        writeConfig->setValue("stationid", Appconfig::stationId ());
        writeConfig->endGroup();
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: