C++ 文件读写异常处理

本文介绍了如何使用CFile类进行文件读写操作,并展示了在处理CFileException异常时的具体案例,包括文件未找到、文件句柄不足、硬件错误等,并通过CharLowerBuff函数进行了字符转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	char* pBuffer = new char[0x1000];
	try {
		CFile file("mydoc.doc", CFile::modeReadWrite);
		DWORD dwBytesRemaining = file.GetLength();
		UINT nBytesRead;
		DWORD dwPosition;
		while (dwBytesRemaining) {
			dwPosition = file.GetPosition();
			nBytesRead = file.Read(pBuffer, 0x1000);
			::CharLowerBuff(pBuffer, nBytesRead);
			file.Seek((LONG)dwPosition, CFile::begin);
			file.Write(pBuffer, nBytesRead);
			dwBytesRemaining -= nBytesRead;
		}
	}
	catch (CFileException* e) {
		if (e->m_cause == CFileException::fileNotFound)
			MessageBox("File not found");
		else if (e->m_cause == CFileException::tooManyOpenFiles)
			MessageBox("File handles not enough");
		else if (e->m_cause == CFileException::hardIO)
			MessageBox("Hardware error");
		else if (e->m_cause == CFileException::diskFull)
			MessageBox("Disk full");
		else if (e->m_cause == CFileException::badPath)
			MessageBox("All or part of the path is invalid");
		else
			MessageBox("Unknown file error");
		e->Delete();
	}
	delete[] pBuffer;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值