如何在指定路径下新建一个文件夹?
怎么实现像VC++新建一个工程的作用?
能做到新建、保存已选择的数据,文档,以及下次打开时能保存上次的数据,文档?

解决方案 »

  1.   

    能做到新建、保存已选择的数据,文档,以及下次打开时能保存上次的数据,文档?
    ===============================================
    就是你要自己组织数据
    然后把这些信息存成一个文件
    VC的.sln就是这样一个文件
      

  2.   

      “把这些信息存成一个文件” 恩,我也是这么想的。
      不过,才学MFC没多久。实现起来就有点困难。
      我也试过CreateDirectory,可好像这个函数只能在当前目录下新建文件夹。如何能在我指定目录下创建  呢?
      

  3.   

    创建文件夹建议使用MakeSureDirectoryPathExists
    这个函数的参数是一个绝对路径
    如果这个路径存在就返回true
    如果不存在就创建出来至于“把这些信息存成一个文件”
    其实也没什么复杂的
    一般要定义一个标准的结构体作为文件头
    所谓标准就是每个成员变量都有固定的空间
    整个结构的长度固定
    然后就是把自己需要的数据写入文件中
    如果怕组织复杂
    写的时候也可以固定长度
    每各一定距离写一些数据
    设置结束标识和无数据的占位标识即可
      

  4.   

    在指定路径 下新建文件夹应该考虑每一级目录都否存在,不存在,要一级一级的创建,而一般的API,或者CRT函数都只能创建一级的。
    下面给一个能逐级创建文件夹的代码:        //方法一 外壳函数,最少也要Windows2000才行 
    WCHAR pszwPath[260] = {0};
    MultiByteToWideChar(CP_ACP, 0,
    pszPath, strlen(pszPath)+1, pszwPath, 256);
    int ret = SHCreateDirectory(NULL, pszwPath);
      
    if( ret==ERR_SUCCEED || ret==ERROR_FILE_EXISTS || ret==ERROR_ALREADY_EXISTS)
    return TRUE;
    else
    return FALSE;
            //方法二  WINDOWS API 用了STL string
    string strFullPath = pszPath;
    string strTmp;
    int pos = 0, last_pos = 0;
    while(pos != -1)
    {
    pos = strFullPath.find_first_of('\\', last_pos);
    if( pos != -1/*npos*/ )
    {
    strTmp.assign(strFullPath, 0, pos);
    //目录不存在则创建之
    if( !IsPathExist(strTmp.c_str()) )
    CreateDirectory(strTmp.c_str(), NULL); last_pos = pos+1;
    }
    else
    {
    if( (strFullPath.size() - last_pos ) > 0)
    {
    if( !IsPathExist(strFullPath.c_str()) )
    CreateDirectory(strFullPath.c_str(), NULL);

    last_pos = pos+1;
    }
    break;
    }
    }
      

  5.   

      谢谢啦。
      不过,我怎么在MSDN里找不到IsPathExist这个函数啊?怎么才能调用它呢
      

  6.   

    IsPathExist跟本是不是API函数
    应该是个自定义函数
      

  7.   

      难怪我找不到
      试了几遍,好像就用CreateDirectory函数在指定路径下新建文件夹如
      你要在m_strPath路径下新建文件夹 CreateDirectory(m_strPath,NULL)就行
      但像6楼说的那个判断每个目录,就不知道怎么实现了。像楼上说的IsPathExist是个自定义函数
      

  8.   

    我在五楼说过了
    建议使用MakeSureDirectoryPathExists
    你可以试试
      

  9.   

    不好意思啊,我一直想用MakeSureDirectoryPathExists这个函数。但不知怎么调用它。网上找Dbghelp.h没找到都不知怎么学MFC。看书好像实际操作性的东西不多。现在只能是,想做到效果就直接在网上找答案,然后自己试着做。但这样学起来比较被动,原理性的东西都不会。大侠能不能支几招啊。谢谢啦
      

  10.   

    你用6.0?
    要应用MakeSureDirectoryPathExists需要包含Dbghelp.h
    引用dbghelp.lib
    当然还要有dbghelp.dll
    你上网搜dbghelp.dll下载应该可以下到全套的
    实在没有就给我站内信
    我给你一套就是了你现在的做法应该是上手比较快的做法
    刚开始总会有这样一个时期
    渡过去就好了
    等做的东西多了慢慢就好了
    对于windows的底层原理自然也就掌握了
    当然看看相关的资料对其有个概念性的了解也是必要的
    不过不管怎么说
    自己多动手还是没有错的
      

  11.   

    用了六楼的程序,终于实现了新建文件夹的功能,这中间也查过些资料,问了好多人。谢谢那些帮助过我的人,像xianglitian这种好人。呵呵,我会用MakeSureDirectoryPathExists再试试的。
        不过,像“新建、保存已选择的数据,文档,以及下次打开时能保存上次的数据,文档”的问题还不怎么明朗,希望好心人能再提宝贵意见哦!