1. 程式人生 > >c++新建刪除資料夾方法CreateDirectory RemoveDirectory

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為成功