c++新建删除文件夹方法CreateDirectory RemoveDirectory

遇到一个问题就是从注册表读取到数据存储路径后,由于所调用的接口只能设置已存在的文件夹,所以就想着在读取到路径之后,就先创建文件夹,然后调用接口就没问题了。

找到的方法如下:

CreateDirectory
Creates a new directory. If the underlying file system supports security on files and directories, the function applies a specified security descriptor to the new directory.
BOOL WINAPI CreateDirectory(
  _In_      LPCTSTR lpPathName,
  _In_opt_  LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
具体详见MSDN,一个参数就是路径,第二个参数是安全性,设置为NULL,那么所得到的默认安全性继承自父目录(its parent directory);
返回值:创建成功返回非0,失败为0,错误可 call GetLastError;
 
有疑问:如果文件夹已存在,又调用CreateDirectory,会不会影响到已存在同名文件夹的数据?
自己亲自实践一下就知道了,答案是不影响。
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{

	char szDirName[] = "D:\\test";
	bool flag = CreateDirectory(szDirName, NULL);
	DWORD err = GetLastError();
	cout << "flag: " << flag <<endl;
	cout << "err: " << err <<endl;
	return 0;
}


对了,还发现一个现象就是:路径只有一个\也可以的.

有了新建,对应就是删除
RemoveDirectory
BOOL WINAPI RemoveDirectory(
  _In_  LPCTSTR lpPathName
);

很简单啦,传入要删除的文件夹路径即可。
返回值:非0为成功

你可能感兴趣的:(C++,C++)