file.Write(str,strlen(str));是直接在自己建立的MFC程序(比如111文件夹)的文件夹以及目录下
但我在111文件夹建立一个222文件夹111:\222
想将生成的TXT文本放在222这个文件夹中
FilePath_Str="data"+":\"+str_room+".txt";
file.Write(FilePath_Str,strlen(FilePath_Str));
结果不行

解决方案 »

  1.   

    这样写吧 FilePath_Str.Format(_T("data:\\%s.txt"),str_room)
     file.Write(FilePath_Str,strlen(FilePath_Str));
      

  2.   

    error C2110: cannot add two pointers
    FilePath_Str="data"+":\\"+str_room+".txt";
      

  3.   

    FilePath_Str = "data\\";
    FilePath_Str += str_room;
    FilePath_Str += ".txt";
      

  4.   

    唉,没看清你的代码,被被你的FilePath_Str误导了。另外文件名和目录里面也不能用冒号。
    猜一下,你是想在当前目录下生成的data子目录建立str_room.txt文件。而
    FilePath_Str="data"+":\\"+str_room+".txt";
    file.Write(FilePath_Str,strlen(FilePath_Str));
    这两行无法达成你的目的。你的FilePath_Str必须是预先取得了当前的全路径名的字符串。
    所以,必须先取得执行文件的当前路径(通过GetModuleFileName及处理,--具体用法很多例子网上查)
    赋值给FilePath_Str(假如获得值为D:\\myprogram\\),(注意字符串中要去掉执行文件名)
    然后可以直接这么写:
    FilePath_Str += "data\\ str_room.txt";       //即D:\\myprogram\\data\\str_room.txt之后必须在文件创建中用这个字符串,而不是file.write中,
    CFile m_file(FilePath_Str,CFile::modeCreate|CFile::modeWrite);
    file.Write(str,strlen(str));                              //这个是写文件的具体内容的。