共用方式為


CreateDirectory 函式 (winbase.h)

建立新的目錄。 如果基礎文件系統支援檔案和目錄的安全性,函式會將指定的安全性描述元套用至新的目錄。

若要指定範本目錄,請使用 CreateDirectoryEx 函式。

若要以交易作業的形式執行這項作業,請使用 CreateDirectoryTransacted 函式。

語法

BOOL CreateDirectory(
  [in]           LPCTSTR               lpPathName,
  [in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes
);

參數

[in] lpPathName

要建立之目錄的路徑。

針對此函式的 ANSI 版本,路徑的預設字串大小限製為 248 個字元(MAX_PATH - 空間足以容納 8.3 檔名)。 若要將此限制擴充為 32,767 寬字元,請呼叫函式的 Unicode 版本,並將 “\?” 前面加上路徑。 如需詳細資訊,請參閱 命名檔案

提示 從 Windows 10 版本 1607 開始,針對此函式的 unicode 版本(CreateDirectoryW),您可以選擇加入移除 248 個字元限制,而不需預先加上 “\\?\”。 每個路徑區段的 255 個字元限制仍適用。 如需詳細資訊,請參閱 命名檔案、路徑和命名空間 的一節。
 

[in, optional] lpSecurityAttributes

SECURITY_ATTRIBUTES 結構的指標。 lpSecurityDescriptor 結構的成員會指定新目錄的安全性描述元。 如果 lpSecurityAttributesNULL,則目錄會取得預設的安全性描述元。 目錄的預設安全性描述元中的 ACL 會繼承自其父目錄。

目標文件系統必須支援檔案和目錄的安全性,此參數才能生效。 (GetVolumeInformation 傳回 FS_PERSISTENT_ACLS時,就會指出此情況。

傳回值

如果函式成功,則傳回值為非零值。

如果函式失敗,傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。 可能的錯誤包括下列各項。

傳回碼 描述
ERROR_ALREADY_EXISTS
指定的目錄已經存在。
ERROR_PATH_NOT_FOUND
一或多個中繼目錄不存在;此函式只會在路徑中建立最終目錄。

言論

某些文件系統,例如 NTFS 檔案系統,支援個別檔案和目錄的壓縮或加密。 在格式化為這類文件系統的磁碟區上,新目錄會繼承其父目錄的壓縮和加密屬性。

應用程式可以藉由呼叫已設定 FILE_FLAG_BACKUP_SEMANTICS 旗標的 CreateFile,來取得目錄的句柄。 如需程式代碼範例,請參閱 CreateFile

若要支持查詢此物件之安全性描述元的繼承函式,可能會啟發學習判斷並報告繼承是否有效。 如需詳細資訊,請參閱 自動傳播可繼承的 ACE

在 Windows 8 和 Windows Server 2012 中,下列技術支援此功能。

科技 支援
伺服器消息塊 (SMB) 3.0 通訊協定 是的
SMB 3.0 透明故障轉移 (TFO) 是的
具有向外延展檔案共用的SMB 3.0(SO) 是的
叢集共用磁碟區檔案系統 (CsvFS) 是的
復原檔案系統 (ReFS) 是的
 

例子

如需範例,請參閱 擷取和變更檔案屬性

要求

要求 價值
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
支援的最低伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平臺 窗戶
標頭 winbase.h (包括 Windows.h)
連結庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

CreateDirectoryEx

CreateDirectoryTransacted

CreateFile

建立和刪除目錄

Directory Management Functions

RemoveDirectory

SECURITY_ATTRIBUTES

SECURITY_INFORMATION