关于GetSystemDirectory function,参考:https://msdn.microsoft.com/en-us/library/windows/desktop/aa363855(v=vs.85).aspx
以下代码参考:http://blog.csdn.net/co_diy/article/details/6831701,不过他好像不是用C++。
IDE: Microsoft Visual Studio Community 2017 15.5.2
操作系统:Windows 7 x64
1 #include "stdafx.h" /* IDE自行创建的 */ 2 3 #include <windows.h> 4 5 int main(int argc, char **argv) 6 { 7 if (CreateDirectory(L"H:\C++\NewDirectory", NULL)) { 8 // If the function succeeds, the return value is nonzero. 9 printf("Create a new directory succeeds. "); 10 } 11 else { 12 // If the function fails, the return value is zero. 13 // To get extended error information, call GetLastError. 14 // Possible errors include the following. 15 switch (GetLastError()) 16 { 17 case ERROR_ALREADY_EXISTS: 18 printf("The specified directory already exists!"); 19 break; 20 case ERROR_PATH_NOT_FOUND: 21 printf("One or more intermediate directories do not exist!"); 22 break; 23 } 24 } 25 26 getchar(); 27 28 return 0; 29 }
GetSystemDirectory()的第一个参数"H:\C++\NewDirectory"的前面需要加L,否则IDE会报错(应该和IDE有关)。
如果你的电脑里不存在目录:H:C++,程序会提示:“One or more intermediate directories do not exist!”。这时候,你需要重新指定在一个存在的目录作为参数。
如果要创建的文件夹已存在(即文件夹NewDirectory),程序会提示:“The specified directory already exists!”,意思是指定的目录早已存在。