1
CFile   file;

CFileException fe;

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

これはうまくいきません。strPath によって提供されるファイル パスは既に存在しますが、このファイルは開かれず、エラー コード 5 が返されます。CFile::modeCreateフラグを削除すると、ファイルは正常に開かれます。ドキュメントには、ファイルが既に存在する場合、「CFile::modeCreate」はファイルにアタッチされ、ゼロに切り詰められますが、実際には最初からファイルを開くことはありません。通話に問題はありますか?

4

1 に答える 1

1

これを解決しました。問題は、ファイルに「ready only」属性が設定されていることでした。開く前に通常に変更したところ、修正されました。

SetFileAttributes(strPath, FILE_ATTRIBUTE_NORMAL);
于 2012-09-27T21:01:55.570 に答える