如题。我想用CFile类打开一个文件,当文件不存在时可以新建生成,当文件存在时是追加打开。我试着用CFile::modeNoTruncate来定义CFile打开的方式,可是每次运行时总是新建生成,具体代码入下:       CFile fp("temp.txt",CFile::modeNoTruncate|CFile::modeWrite);
 // fp.SetFilePath("c:\\");
        CString meg("Hello,file");
int len=meg.GetLength();
         fp.Write((LPCTSTR)meg,len);
fp.Close();   每次重复运行这段代码时总是新建文件,请教我该如何解决,谢谢。

解决方案 »

  1.   

    用fopen( "temp.txt", "at" );
      

  2.   

    你要和CFile::modeCreate结合起来用
      

  3.   

    CFile fp("temp.txt",CFile::modeNoTruncate|CFile::modeWrite);
     // fp.SetFilePath("c:\\");
            CString meg("Hello,file");
    int len=meg.GetLength();
             CFile::SeekToEnd();
             fp.Write((LPCTSTR)meg,len);
    fp.Close();
      

  4.   

    CFile file;
    file.Open("d:\\abc.dat", CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate|CFile::typeBinary|CFile::shareDenyNone);
    试试;
      

  5.   

    呵呵,谢谢大家。其实问题出在没有将数据追加到文件末,而是将先前的数据覆盖了,所以老是以为文件被新建了。按照zhucde(【风间苍月】)的方法用CFile::SeektoEnd定位在文件末再追加,就OK了。谢谢