如题:
mfc中如何在制定位置新建文本文件
谢谢

解决方案 »

  1.   

    CFile::Open("c:\\abc.txt"...)CFile::Openvirtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL);返回值:
    如果成功打开,则返回非零值,否则为0。pError参数仅在返回0时才有意义。参数: lpszFileName 待打开文件的路径,路径可为绝对、相对或网络名(UNC)。  
    nOpenFlags 一个定义了文件的共享和访问模式的UINT。它指定了打开文件后的动作,可以用OR(|)操作符将选项组合起来,至少应有一个访问权限和一个共享选项,modeCreate和modeNoInherit模式是可选的。可参阅CFile 构造函数中模式选项的列表。  
    pError 指向一个存在的文件异常对象,获取失败操作的状态。  说明:
    Open是设计来和缺省CFile构造函数共同使用的。这两个函数形成一个安全方式打开文件,此时失败是通常的、可预料的情况。
    CFile构造函数会在出错时产生一个异常,Open在出错时返回FALSE。Open也可以初始化一个CFileException对象来描述一个错误,但是如果你不提供pError参数或将NULL传递给pError,Open将返回FALSE而不产生一个CFileException。如果传递一个指针到一个存在的CFileException,Open会遇到错误,函数将用出错信息描述填充它。两种情况下Open都不产生异常。
    下表描述了Open的可能结果: pError 是否是遇到错误? 返回值 CFileException内容  
    NULL No TRUE n/a  
    ptr 指向CFileException No TRUE 不变  
    NULL Yes FALSE n/a  
    ptr 指向CFileException Yes FALSE 被初始化,用来描述错误  
    示例:
    // example for CFile::Open
    CFile f;
    CFileException e;
    char* pFileName = "test.dat";
    if(!f.Open(pFileName, CFile::modeCreate | CFile::modeWrite,&e))
    {
      #ifdef _DEBUG
         afxDump<<"File could not be opened"<<e.m_cause<<"\n";
      #endif
    }nOpenFlags 共享和访问模式,指定当打开文件时进行的动作,可以将以下所列用OR(|)操作符联起来。至少应有一个访问权限和一个共享选项,modeCreate和modeNoInherit是可选的。值如下所示:
    · CFile::modeCreate 调用构造函数构造一个新文件,如果文件已存在,则长度变成0。  
    · CFile::modeNoTruncate 此值与modeCreate组合使用。如果所创建的文件已存在则其长度不变为0。因而此文件被打开,或者作为一个新文件或者作为一个已存在的文件。这将是很有用的,例如当打开一个可能存在也可能不存在的文件时。这个选项也可用于CStdioFile.  
    · CFile::modeRead 打开文件仅供读。  
    · CFile::modeReadWrite 打开文件供读写。  
    · CFile::modeWrite 打开文件仅供写。  
    · CFile::modeNoInherit 阻止文件被子进程继承。  
    · CFile::ShareDenyNone 不禁止其它进程读或写访问,打开文件。如果文件已被其它进程以兼容模式打开,则Create失败。  
    · CFile::ShareDenyRead 打开文件,禁止其它进程读此文件。如果文件已被其它进程以兼容模式打开,或被其它进程读,则Create失败。  
    · CFile::ShareDenyWrite 打开文件,禁止其它进程写此文件。如果文件已被其它进程以兼容模式打开,或被其它进程写,则Create失败。  
    · CFile::ShareExclusive 以独占模式打开文件,禁止其它进程对文件的读写。如果文件已经以其它模式打开读写(即使被当前进程),则构造失败。  
    · CFile::ShareCompat 此标志在32位MFC中无效。此标志在使用CFile::Open时映射为CFile::ShareExclusive。  
    · CFile::typeText 对回车换行设置特殊进程(仅用于派生类)。  
    · CFile::typeBinary 设置二进制模式(仅用于派生类)。