0

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

#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;
}

根据这个站点,它是检查是否发生错误的正确方法。虽然,当我\\变成它时,/它似乎也不起作用:

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

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

有任何想法吗?

4

2 回答 2

1

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

于 2013-08-14T13:11:19.477 回答
1

我认为这是因为您没有指定根目录。例如,在您当前的上下文中,如果您想创建该文件夹,您应该从路径开始

 .\\testdir\\myotherfolder. 

如果你想从 c 做,你需要有

 c:\\testdir\\myotherfolder
于 2013-08-14T13:00:24.513 回答