我想在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;
}
有什么想法吗?
答案 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