如何在指定路径下新建一个文件夹?怎么实现像VC++新建一个工程的作用 如何在指定路径下新建一个文件夹?怎么实现像VC++新建一个工程的作用?能做到新建、保存已选择的数据,文档,以及下次打开时能保存上次的数据,文档? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能做到新建、保存已选择的数据,文档,以及下次打开时能保存上次的数据,文档?===============================================就是你要自己组织数据然后把这些信息存成一个文件VC的.sln就是这样一个文件 “把这些信息存成一个文件” 恩,我也是这么想的。 不过,才学MFC没多久。实现起来就有点困难。 我也试过CreateDirectory,可好像这个函数只能在当前目录下新建文件夹。如何能在我指定目录下创建 呢? 创建文件夹建议使用MakeSureDirectoryPathExists这个函数的参数是一个绝对路径如果这个路径存在就返回true如果不存在就创建出来至于“把这些信息存成一个文件”其实也没什么复杂的一般要定义一个标准的结构体作为文件头所谓标准就是每个成员变量都有固定的空间整个结构的长度固定然后就是把自己需要的数据写入文件中如果怕组织复杂写的时候也可以固定长度每各一定距离写一些数据设置结束标识和无数据的占位标识即可 在指定路径 下新建文件夹应该考虑每一级目录都否存在,不存在,要一级一级的创建,而一般的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; } } 谢谢啦。 不过,我怎么在MSDN里找不到IsPathExist这个函数啊?怎么才能调用它呢 IsPathExist跟本是不是API函数应该是个自定义函数 难怪我找不到 试了几遍,好像就用CreateDirectory函数在指定路径下新建文件夹如 你要在m_strPath路径下新建文件夹 CreateDirectory(m_strPath,NULL)就行 但像6楼说的那个判断每个目录,就不知道怎么实现了。像楼上说的IsPathExist是个自定义函数 我在五楼说过了建议使用MakeSureDirectoryPathExists你可以试试 不好意思啊,我一直想用MakeSureDirectoryPathExists这个函数。但不知怎么调用它。网上找Dbghelp.h没找到都不知怎么学MFC。看书好像实际操作性的东西不多。现在只能是,想做到效果就直接在网上找答案,然后自己试着做。但这样学起来比较被动,原理性的东西都不会。大侠能不能支几招啊。谢谢啦 你用6.0?要应用MakeSureDirectoryPathExists需要包含Dbghelp.h引用dbghelp.lib当然还要有dbghelp.dll你上网搜dbghelp.dll下载应该可以下到全套的实在没有就给我站内信我给你一套就是了你现在的做法应该是上手比较快的做法刚开始总会有这样一个时期渡过去就好了等做的东西多了慢慢就好了对于windows的底层原理自然也就掌握了当然看看相关的资料对其有个概念性的了解也是必要的不过不管怎么说自己多动手还是没有错的 用了六楼的程序,终于实现了新建文件夹的功能,这中间也查过些资料,问了好多人。谢谢那些帮助过我的人,像xianglitian这种好人。呵呵,我会用MakeSureDirectoryPathExists再试试的。 不过,像“新建、保存已选择的数据,文档,以及下次打开时能保存上次的数据,文档”的问题还不怎么明朗,希望好心人能再提宝贵意见哦! 请问如何利用select模型来实现一个简单的通信工具 怎样让位图的大小和按钮的大小一致? 急问个问题 如何响应combox的改变当前选择项的消息? 图象处理API如何得到? 请问这个功能怎么实现? 在View中,在用CDC画了几条线,想在单击鼠标时删除线,怎样做? 多文档/视图 怎样在Edit中画图? 如何让线程中的窗口,一直保持在主框架中的某个窗口之上。 请问如何获取局域网机子的状态 AfxBeginThread调用问题
===============================================
就是你要自己组织数据
然后把这些信息存成一个文件
VC的.sln就是这样一个文件
不过,才学MFC没多久。实现起来就有点困难。
我也试过CreateDirectory,可好像这个函数只能在当前目录下新建文件夹。如何能在我指定目录下创建 呢?
这个函数的参数是一个绝对路径
如果这个路径存在就返回true
如果不存在就创建出来至于“把这些信息存成一个文件”
其实也没什么复杂的
一般要定义一个标准的结构体作为文件头
所谓标准就是每个成员变量都有固定的空间
整个结构的长度固定
然后就是把自己需要的数据写入文件中
如果怕组织复杂
写的时候也可以固定长度
每各一定距离写一些数据
设置结束标识和无数据的占位标识即可
下面给一个能逐级创建文件夹的代码: //方法一 外壳函数,最少也要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;
}
}
不过,我怎么在MSDN里找不到IsPathExist这个函数啊?怎么才能调用它呢
应该是个自定义函数
试了几遍,好像就用CreateDirectory函数在指定路径下新建文件夹如
你要在m_strPath路径下新建文件夹 CreateDirectory(m_strPath,NULL)就行
但像6楼说的那个判断每个目录,就不知道怎么实现了。像楼上说的IsPathExist是个自定义函数
建议使用MakeSureDirectoryPathExists
你可以试试
要应用MakeSureDirectoryPathExists需要包含Dbghelp.h
引用dbghelp.lib
当然还要有dbghelp.dll
你上网搜dbghelp.dll下载应该可以下到全套的
实在没有就给我站内信
我给你一套就是了你现在的做法应该是上手比较快的做法
刚开始总会有这样一个时期
渡过去就好了
等做的东西多了慢慢就好了
对于windows的底层原理自然也就掌握了
当然看看相关的资料对其有个概念性的了解也是必要的
不过不管怎么说
自己多动手还是没有错的
不过,像“新建、保存已选择的数据,文档,以及下次打开时能保存上次的数据,文档”的问题还不怎么明朗,希望好心人能再提宝贵意见哦!