CFile file;
  strFileName="File12345678.mod";
  if( !file.Open(strFileName,CFile::modeCreate|CFile::modeWrite))
  {
       AfxMessageBox("打开文件"+strFileName+"失败",MB_OK) ;
       return;
  }
  //
  //写文件内容 ...
  //
  file.Close();  最后的问题是,生成的文件名是8.3型的,即File12~1.mod,这种文件
好象是DOS文件名类型。
  请教的是:该如何处理,可以直接生成的文件名是原始的"File12345678.mod"?

解决方案 »

  1.   

    请使用 Win32 级别的 API , 如: CreateFile
      

  2.   

    写一个文件
    #include <windows.h>HANDLE hFile; 
     
    hFile = CreateFile(TEXT("File12345678.mod"),     // file to create
                       GENERIC_WRITE,          // open for writing
                       0,                      // do not share
                       NULL,                   // default security
                       CREATE_ALWAYS,          // overwrite existing
                       FILE_ATTRIBUTE_NORMAL | // normal file
                       FILE_FLAG_OVERLAPPED,   // asynchronous I/O
                       NULL);                  // no attr. templateif (hFile == INVALID_HANDLE_VALUE) 

        AfxMessageBox("Could not open file (error %d)\n", GetLastError());
        return 0;
    }
      

  3.   

    然后,直接用hFile构造CFile对象:
    CFile f(hFile);