我用CStdioFile来打开一个文件,我希望是如果没有指定的文件,就创建一个,如果有了,我就在这个文件的后面添加内容,而不是清空这个文件,然后再重新写入内容,请问Open方法里的属性该怎么写。
Open(_T("\\My Documents\\result.txt"),CFile::modeWrite | CFile::typeBinary | CFile::shareDenyWrite)
我是这么写的,但是每次都是清除了原来的内容,我希望每次写的内容可以叠加。

解决方案 »

  1.   

    既然是 CStdioFile 为什么要使用 typeBinary?
      

  2.   

    写数据之前首先定位到文件层
    file.Seek(0, CFile::end );
      

  3.   

    我加了file.Seek(0, CFile::end )后,每写一次,文件的大小确实增加了,但是打开文件却什么内容都没有啊。
      

  4.   

    你试一下这个,
    CStdioFile mFile;
    CFileException mExcept;
    mFile.Open( path ,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite,&mExcept); 
    mFile.SeekToEnd();
    mFile.WriteString(str);还有这个是对文本文件的操作,不能加typeBinary属性
      

  5.   

    刚才试了一下,发现个现象,比如说buf是要写入的内容,他的内容长度是50,我把 csf.Write(chbuf,n)中的n写成小于50的数都可以出的来,但是大于等于50就会出错,我的buf的长度是2048。