Qt写入文件失败,啊啊啊,原来是这个错误!
2011-10-08 20:49
309 查看
QFIle *localFile = new QFile(fileName);
if(!localFile->open(QFile::WriteOnly))
{
qDebug()<<"open file error";
QMessageBox::information(this,"","open file error");
return ;
}
文件创建和打开都是成功的。
if(bytesReceived < totalBytes)
{
bytesReceived += tempConnection->bytesAvailable();//tempConnection是个QTcpSocket
QByteArray inBlock = tempConnection->readAll();
qint64 len=localFile->write(inBlock);
QMessageBox::information(this,"",inBlock);
}
整个过程是TCP客户端传送过来的文件,TCP服务端接收这个文件并且把它存储下来。服务端把文件建立了,也正常打开了,然后往里面写可是没有写进去。但是localFile->write(inBlock)的返回值,也就是写入的字节数恰恰是文件内容的字节数,这不是奇怪吗?它说写进去了,可我打开文件查看的时候却什么也没有!我用QMessageBox显示inBlock中要写入文件的内容,是对的,而且write的返回值len也是对的,可打开文件却是空的?搞了一晚上了,就是查不出错误?
原来错误是:接收文件成功后,我没有关闭文件,即忘记调用localFile.close()了!我擦!!!!!!!!!!
if(!localFile->open(QFile::WriteOnly))
{
qDebug()<<"open file error";
QMessageBox::information(this,"","open file error");
return ;
}
文件创建和打开都是成功的。
if(bytesReceived < totalBytes)
{
bytesReceived += tempConnection->bytesAvailable();//tempConnection是个QTcpSocket
QByteArray inBlock = tempConnection->readAll();
qint64 len=localFile->write(inBlock);
QMessageBox::information(this,"",inBlock);
}
整个过程是TCP客户端传送过来的文件,TCP服务端接收这个文件并且把它存储下来。服务端把文件建立了,也正常打开了,然后往里面写可是没有写进去。但是localFile->write(inBlock)的返回值,也就是写入的字节数恰恰是文件内容的字节数,这不是奇怪吗?它说写进去了,可我打开文件查看的时候却什么也没有!我用QMessageBox显示inBlock中要写入文件的内容,是对的,而且write的返回值len也是对的,可打开文件却是空的?搞了一晚上了,就是查不出错误?
原来错误是:接收文件成功后,我没有关闭文件,即忘记调用localFile.close()了!我擦!!!!!!!!!!
相关文章推荐
- ADODB.Stream 错误 '800a0bbc' 写入文件失败
- 关于ASP程序运行出现ADODB.Stream 错误 800a0bbc 写入文件失败 的解决办法!
- 动软出现“添加服务器配置失败,请检查是否有写入权限或文件是否存在“错误
- 字节流写入浏览器做导出功能,在Chorme下载文件时“失败-网络错误”
- 解决:ADODB.Stream 错误 '800a0bbc' 写入文件失败
- 关于ASP程序运行出现ADODB.Stream 错误 800a0bbc 写入文件失败 的解决办法!
- 关于ASP程序运行出现ADODB.Stream 错误 800a0bbc 写入文件失败 的解决办法!
- 错误 '80020009',写入文件失败
- 关于ASP程序运行出现ADODB.Stream 错误 800a0bbc 写入文件失败 的解决办法!
- 关于ADODB.Stream 错误 800a0bbc 写入文件失败
- Qt中的错误说没有<QtNetwork>这个文件
- 部署和/或注册失败,错误为: 0x8973190e。 写入文件“/Windows/NETCFv35.ppc.armv4.cab”时出错。错误 0x80070070: 磁盘空间不足。
- 解决:ADODB.Stream 错误 '800a0bbc' 写入文件失败
- windows2008+iis7无组件上传写入文件失败ADODB.Stream 错误 800a0bbc问题
- 将元数据写入文件“....dll”时发生错误 and Xap 包装失败 解决方法
- 记一下实在受不了这个错误了:LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- windows2008+iis7,无组件上传写入文件失败,ADODB.Stream 错误 800a0bbc
- 动软中,在连接服务器时,出现“添加服务器配置失败,请检查是否有写入权限或文件是否存在“错误
- 动软中,在连接服务器时,出现“添加服务器配置失败,请检查是否有写入权限或文件是否存在“错误
- ADODB.Stream 错误 '800a0bbc' 写入文件失败。