CFile fileBmp;
CFileException fe;
CStdioFile  fileInfoTxt;
fileInfoTxt.Open(L"tes.txt",CFile::modeCreate|CFile::modeWrite);
fileInfoTxt.WriteString(L"45ddddddddddd5");
fileInfoTxt.Close(); if (!fileBmp.Open(L"tes.txt", CFile::modeRead | CFile::shareDenyWrite, &fe))
{//以“读”的方式打开文件;
AfxMessageBox(L"图像文件打不开!");
return FALSE;
}
为什么这样写无法向tes.txt文件中写入内容。
但是去掉红色部分的代码就可以向tes.txt中写入内容。
这是为什么?

解决方案 »

  1.   

    不会是编码问题吧。。
    CFile fileBmp;
    CFileException fe;
    CStdioFile fileInfoTxt;
    fileInfoTxt.Open(_T("tes.txt"),CFile::modeCreate|CFile::modeWrite);
    fileInfoTxt.WriteString(_T("45ddddddddddd5"));
    fileInfoTxt.Close();

    if (!fileBmp.Open(_T("tes.txt"), CFile::modeRead | CFile::shareDenyWrite, &fe))
    {//ÒÔ¡°¶Á¡±µÄ·½Ê½´ò¿ªÎļþ£»
    AfxMessageBox(_T("ͼÏñÎļþ´ò²»¿ª£¡"));
    return ;
    }
    fileBmp.Close();
      

  2.   

    L和_T有什么区别?
    为什么我去掉红色部分代码就可以写入“45ddddddddddd5”
      

  3.   

    CFile fileBmp;
            CFileException fe;
            CStdioFile fileInfoTxt;
            fileInfoTxt.Open(_T("tes.txt"),CFile::modeCreate|CFile::modeWrite);
            fileInfoTxt.WriteString(_T("45ddddddddddd5"));
            fileInfoTxt.Close();
            
            if (!fileBmp.Open(_T("tes.txt"), CFile::modeRead | CFile::shareDenyWrite, &fe))
            {//ÒÔ¡°¶Á¡±µÄ·½Ê½´ò¿ªÎļþ£»
                AfxMessageBox(_T("ͼÏñÎļþ´ò²»¿ª£¡"));
                return ;
            }
            fileBmp.Close();
    我试试,加代码的功能
      

  4.   

    文件被shareDenyWrite独占了,当然无法写入。
      

  5.   

    可是我是先写完了之后关闭。又打开的。
    我把这个句
      if (!fileBmp.Open(_T("tes.txt"), CFile::modeRead | CFile::shareDenyWrite, &fe))
    换成打开另一个txt文件也无法向tes.txt(第一个文件)写入数据。
    if (!fileBmp.Open(_T("XXXX.txt"), CFile::modeRead | CFile::shareDenyWrite, &fe))
      

  6.   

    http://www.vckbase.com/document/viewdoc/?id=1224