C++ 如何在C++;
我刚刚发现了一段代码,它允许我在不使用system()的情况下使用windows API创建目录。唯一的问题是我无法在子目录中创建目录。 比如说C++ 如何在C++;,c++,windows,api,c++17,mkdir,C++,Windows,Api,C++17,Mkdir,我刚刚发现了一段代码,它允许我在不使用system()的情况下使用windows API创建目录。唯一的问题是我无法在子目录中创建目录。 比如说 #include<windows.h> int main(){ CreateDirectory ("C:\\random", NULL); return 0; } #包括 int main(){ CreateDirectory(“C:\\random”,NULL); 返回0; } 在C中创建一个名为random的文件夹 但
#include<windows.h>
int main(){
CreateDirectory ("C:\\random", NULL);
return 0;
}
#包括
int main(){
CreateDirectory(“C:\\random”,NULL);
返回0;
}
在C中创建一个名为random的文件夹
但如果我这样做了
#include<windows.h>
int main(){
CreateDirectory ("C:\\Users\morons", NULL);
return 0;
}
#包括
int main(){
CreateDirectory(“C:\\Users\morons”,NULL);
返回0;
}
它在C che中创建名为UsersRons的文件夹,而不是Users下的文件夹morons。
有什么建议吗?你需要再加一个反斜杠:
CreateDirectory ("C:\\Users\\morons", NULL);
您需要管理员权限才能在C:\Users中创建或删除文件夹。确保以管理员身份运行.exe,以确保您具有这些权限。否则,CreateDirectory将失败 要获取返回的错误,请使用GetLastError。有关可能返回的错误的参考,请参阅 另外,您要查找的代码是
CreateDirectory ("C:\\Users\\morons", NULL);
由于在“白痴”之前需要有一个“\\”跨平台制作windows应用程序,所以我们现在使用的是
CreateDirectory()
c++17标准
#包括
#包括
int main()
{
std::filesystem::创建_目录(“C:\\newfolder\\morons”);
}
需要将makefile更改为-std=c++17
,并更新为支持c++17的GCC编译器
在visual studio中,按照以下步骤启用c++17CreateDirectory(“c:\\Users\\morons”,NULL);我已经尝试过了,但这样做不会创建任何内容。您有权限在C:\Users中创建目录吗?你可能需要以管理员的身份运行程序才能获得必要的权限。我得到了所有的投票,这是非常不公平的,因为这是一个比我好得多的答案。有一个向上投票:-)…或者你可以使用前斜杠:
CreateDirectory(“c:/user/morons”)
。Windows要求在命令行上使用反斜杠,但API接受反斜杠或普通斜杠。
#include<iostream>
#include <filesystem>
int main()
{
std::filesystem::create_directories("C:\\newfolder\\morons");
}