CFile :: modeCreate不像宣传的那样工作

时间:2012-09-27 20:44:26

标签: c++ visual-studio-2010 mfc

CFile   file;

CFileException fe;

if (file.Open(strPath, CFile::modeCreate | CFile::modeReadWrite | CFile::typeBinary, &fe) )
{
}

这不起作用。 strPath提供的文件路径已经存在,但它不会打开此文件并返回错误代码5.如果删除CFile::modeCreate标志,则文件打开正常。文档说如果文件已经存在'CFile :: modeCreate'将自己附加到它并将其截断为零,但实际上它从不打开文件。我的电话有问题吗?

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。问题是该文件具有“只读”属性集。我打开它之前将其更改为正常并修复了它。

SetFileAttributes(strPath, FILE_ATTRIBUTE_NORMAL);