如何在Windows中创建目录树?

时间:2013-08-14 12:56:33

标签: c windows directory mkdir

我想在Windows中使用纯C创建一个简单的目录树。继承我所做的:

#include<windows.h>
#include <stdio.h>

int main(){
   if(CreateDirectory("testdir", NULL) == 0)
        printf("error!\n");
   return 0;
}

哪个效果很好。但是这段代码打印出错误 - 为什么?

#include<windows.h>
#include <stdio.h>

int main(){
   if(CreateDirectory("testdir\\subdir", NULL) == 0)
        printf("error!\n");
   return 0;
}

根据this site,它是检查是否发生错误的正确方法。虽然,当我将\\更改为/时,它似乎也无效:

#include<windows.h>
#include <stdio.h>

int main(){
   if(CreateDirectory("testdir/subdir", NULL) == 0)
        printf("error!\n");
   return 0;
}

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我认为是因为您没有指定根目录。例如,在当前上下文中,如果要创建该文件夹,则应使用

启动路径
 .\\testdir\\myotherfolder. 

如果你想从c做,你需要

 c:\\testdir\\myotherfolder

答案 1 :(得分:1)

CreateDirectory函数只创建路径的最终目录;如果缺少中间目录,则返回零,GetLastError将返回ERROR_PATH_NOT_FOUND。见http://msdn.microsoft.com/en-us/library/windows/desktop/aa363855%28v=vs.85%29.aspx