如何创建一个字符串指定的目录(包括子目录)?
现有一个路径字符串d:\temp\sub1\sub2\sub3,但是机器上只有的d:\,没有temp目录,如何创建temp目录并包括创建子目录?用CreateDirectory()不行,它只能创建已有目录下的一层目录.
问题点数:100、回复次数:9Top
1 楼foxmail(萧遥 www.LoveSnow.com)回复于 2003-01-08 14:33:55 得分 10
只能一层层创建吧
你把字符串split出来
循环创建Top
2 楼96163(爱谁谁)回复于 2003-01-08 14:36:33 得分 5
只能循环创建了!Top
3 楼isdong(有些事情应该忘记)回复于 2003-01-08 14:37:04 得分 10
使用SHFileOperation即可,否则就需要逐级创建目录Top
4 楼wltsui(-无招胜有招-)回复于 2003-01-08 14:37:50 得分 20
//函数描述:函数名Fcreate_directory
//功能:创建目录
//参数描述:directoryname为指定目录
//返回值描述:返回值1表示正常,-1表示出错
short Fcreate_directory(char* directoryname)
{
if( CreateDirectory( directoryname, NULL ) == 0 )
{
return -1;
}
return 1;
}
Top
5 楼snollow(坐井观蛙)回复于 2003-01-08 14:40:01 得分 0
同意wltsui(前途未必光明, 道路一定曲折!)Top
6 楼kingofhell(地狱之王)回复于 2003-01-08 15:16:54 得分 40
呵呵,给你个自己写的函数,用了很久了。
BOOL XXXX::MakeLevelDir(char* dd)
{
char Buffer[256];
char buf[256];
char b[2];
char* p;
sprintf(b,"//");
sprintf(Buffer,dd);
p = Buffer;
while(strchr(p,'//'))
{
if ( p[0] == b[0] )
{
int res = p - Buffer +1;
for ( int i = 0 ; i < res ; i++)
buf[i] = Buffer[i];
buf[i] = '\0';
CreateDirectory(buf,NULL);
}
p++;
}
return true;
}
Top
7 楼demetry(智者橡木)回复于 2003-01-08 15:20:06 得分 5
用isdong的方法是调用SHELL函数,语句简单,不过要注意添加shlapi.h和链接shlapi.libTop
8 楼demetry(智者橡木)回复于 2003-01-08 15:21:49 得分 5
另外还可以
WinExec("cmd /c mkdir d:d:\temp\sub1\sub2\sub3", SHOW_HIDE);Top
9 楼jiangsheng(蒋晟.Net[MVP])回复于 2003-01-08 15:30:23 得分 5
MakeSureDirectoryPathExists
Windows NT/2000/XP: Included in Windows 2000 and later.
Redistributable: Requires DbgHelp.dll on Windows NT 4.0 and Windows 95/98/Me.
Header: Declared in Dbghelp.h.
Library: Use Dbghelp.lib.Top




