1. 将你的Qt程序以管理员身份运行,如果它可以成功写入文件,说明权限确实是问题所在。
2. 检查目标文件的访问权限,并确保你的Qt程序有足够的权限写入该文件。如果需要,你可以通过修改文件的权限或者将文件移动到程序有写权限的目录来解决此问题。
3. 如果你使用的是Windows系统,你可以在代码中调用`SetCurrentDirectory()`函数来修改当前工作目录,使得程序运行时拥有写权限。
4. 如果以上方法都无法解决问题,你可以尝试更改程序的用户权限,或者为程序配置特定的ACL(访问控制列表)来获得足够的权限。
希望这些方法能够帮助你解决问题。
qt读写文件内容老丢失可能是文件被破坏或读取数据时出错导致的。要解决该问题,可以尝试使用Qt提供的QFile类来检查文件的状态和大小,以确保文件是完整的。同时,还可以使用Qt提供的QDataStream类来避免出现错误读取数据,从而保证数据的完整性。
#include <qfile.h>#include <qtextstream.h>1. 打开文件QFile f( fn )//fn可以是一 个相对路径或绝对路径f.open(IO_)//一般不要IO_ReadWrite,很容易出现赃数据//如果要在文件的后面添加内 容要IO_WriteOnly|IO_Append//如果要清空原来的内容,只要IO_WriteOnly//IO_Translate用来读windows文 件,linux下的回车换行是/n,windows下是/r/n2. 写文件QTextStream s( &f )s<<"Hello,world!!!"<<"/n"3. 读一行文件readLine(),每读一 行自动下移一行atEnd()判断是否到文件末尾4. 关闭文件f.close()5. 对文件的读 *** 作:QString fileName = QFileDialog::getOpenFileName( QString::null, QString::null, this)QFile f (fileName)f.open(IO_ReadOnly)QTextStream t(&f)MultiLineEdit1->setText( t.read() )f.close()MultiLineEdit1->setAutoUpdate( TRUE )MultiLineEdit1->repaint ()setCaption( fileName )6. 对文件的写 *** 作:QString fileName = QFileDialog::getSaveFileName( QString::null, QString::null, this )QFile f( fileName )f.open (IO_WriteOnly )QTextStream t(&f)t <<MultiLineEdit1->text()f.close()欢迎分享,转载请注明来源:内存溢出
评论列表(0条)