次の方法で共有


CreateDirectoryW 関数 (fileapi.h)

新しいディレクトリを作成します。 基になるファイル システムがファイルとディレクトリのセキュリティをサポートしている場合、関数は指定されたセキュリティ記述子を新しいディレクトリに適用します。

テンプレート ディレクトリを指定するには、CreateDirectoryEx 関数を使用します。

この操作をトランザクション操作として実行するには、CreateDirectoryTransacted 関数を使用します。

構文

BOOL CreateDirectoryW(
  [in]           LPCWSTR               lpPathName,
  [in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes
);

パラメーター

[in] lpPathName

作成するディレクトリのパス。

既定では、名前はMAX_PATH文字に制限されています。 この制限を 32,767 文字のワイド文字に拡張するには、パスの先頭に "\\?\" を付けます。 詳細については、「ファイル、パス、および名前空間の名前付けする」を参照してください。

先端

Windows 10 バージョン 1607 以降では、事前に "\\?\" なしでMAX_PATHの制限を削除することをオプトインできます。 詳細については、「名前付けファイル、パス、および名前空間の」の「パスの最大長制限」セクションを参照してください。

[in, optional] lpSecurityAttributes

SECURITY_ATTRIBUTES 構造体へのポインター。 構造体の lpSecurityDescriptor メンバーは、新しいディレクトリのセキュリティ記述子を指定します。 lpSecurityAttributes が NULL場合、ディレクトリは既定のセキュリティ記述子を取得します。 ディレクトリの既定のセキュリティ記述子の ACL は、その親ディレクトリから継承されます。

このパラメーターを有効にするには、ターゲット・ファイル・システムがファイルおよびディレクトリーのセキュリティーをサポートする必要があります。 (これは、GetVolumeInformation が FS_PERSISTENT_ACLSを返 場合に示されます)。

戻り値

関数が成功した場合、戻り値は 0 以外です。

関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError呼び出します。 考えられるエラーは次のとおりです。

リターン コード 形容
ERROR_ALREADY_EXISTS
指定したディレクトリが既に存在します。
ERROR_PATH_NOT_FOUND
1 つ以上の中間ディレクトリが存在しません。この関数は、パス内に最終的なディレクトリのみを作成します。

備考

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) はい
 

例については、「ファイル属性の取得と変更」を参照してください。

手記

fileapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして CreateDirectory を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリ |UWP アプリ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリ |UWP アプリ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー fileapi.h (Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

CreateDirectoryEx の

CreateDirectoryTransacted の

CreateFile の

ディレクトリの作成と削除

ディレクトリ管理機能の

RemoveDirectory の

SECURITY_ATTRIBUTES

SECURITY_INFORMATION