CFile   testFile; 
testFile.Open( "text.txt ",   CFile::modeWrite   |CFile::shareDenyNone|CFile::modeCreate); 
此时只可保存为text.txt,怎样使文件可保存名可变,
1用户自己输入
2以时间日期保存
3其他方法
那位高手可以回答一下?

解决方案 »

  1.   

    MFC 提供了 CFileDialog 类,可以使用户指定文件名。
    详细用法,Google 搜索一下。
      

  2.   

    什么意思?
    CString strFile = _T("text.txt");
    testFile.Open( strFile ,   CFile::modeWrite    ¦CFile::shareDenyNone ¦CFile::modeCreate);  
      

  3.   

    让用户输入文件名和路径可以构造一个CFileDialog类,执行DoModal;
    以时间日期作为文件名可以用CTime类,GetCurrentTime、Format函数。
      

  4.   

     CFile   testFile; 
    testFile.Open( "text.txt ",   CFile::modeWrite   |CFile::shareDenyNone|CFile::modeCreate); //保存数据到缓存 
    char   szTest[100]   =   {0}; 
    int   nLength   =   ((CEdit*)GetDlgItem(IDC_EDIT1))-> GetWindowText(szTest,   100); //将缓存中数据写入文件 
    testFile.Write(szTest,   nLength); //关闭文件 
     testFile.Close();
    这就是保存
    然后就在项目文件夹内生成text.txt 
    当时我现在想让文件名可变
    因为用一个文件名就会讲上次生成的覆盖
    大家可以讲得详细一点吗?
    谢谢
      

  5.   

    static int nSaveCount = 0;
    CString strFileName;
    strFileName.Format("test%d.txt", nSaveCount++); CFile   testFile; 
    testFile.Open( strFileName,   CFile::modeWrite    &brvbarCFile::shareDenyNone &brvbarCFile::modeCreate); //保存数据到缓存 
    char   szTest[100]   =   {0}; 
    int   nLength   =   ((CEdit*)GetDlgItem(IDC_EDIT1))-> GetWindowText(szTest,   100); //将缓存中数据写入文件 
    testFile.Write(szTest,   nLength); //关闭文件 
     testFile.Close(); 
      

  6.   

    你想修改一个文件的内容,然后储存到另外一个文件里面是吗?
    你可以用CopyFile先把文件复制一份(当然要给一个新的文件名),然后打开那个新复制的文件来修改。
      

  7.   

    CString strFile;
    strFile.Format("t%d.txt", (UINT)time(0));
    testFile.Open( strFile ,   CFile::modeWrite    ¦CFile::shareDenyNone ¦CFile::modeCreate);  
      

  8.   

     CFileDialog 
    参数中加上你需要保存的扩展类型
      

  9.   

    也可不用改变文件名,把要写入的数据写到文件的后面
    file.Open("c:\\文件名.txt",CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite );
    file.SeekToEnd();
    file.Write(&databuff[i],sizeof(databuff));
    file.Close();
    CFile::modeNoTruncate用于判断是否有此文件,如果有则不覆盖。
      

  10.   

    1.自己输入 就不说了
    2.时间
    CString strFile;
    strFile.Format("t%d.txt", (UINT)time(0));
    testFile.Open( strFile ,   CFile::modeWrite    ¦CFile::shareDenyNone ¦CFile::modeCreate);  
    3. 就楼上的 直接写在文件后面
      

  11.   

    想变文件名,其实是个概念上的误导,其实是先确定好文件(比如利用时间命名),然后再Open这个文件名,属性是CFile::Create来创建这个文件,然后根据用户输入来写这个文件的数据。