分享方式:


_mkdir, _wmkdir

建立新目錄。

語法


int _mkdir(
   const char *dirname
);
int _wmkdir(
   const wchar_t *dirname
);

參數

dirname
新目錄的路徑。

傳回值

如果已建立新目錄,所有這些函式都會傳回值 0。 發生錯誤時,函式會傳回 -1 並設定 errno 如下。

EEXIST 未建立目錄,因為 dirname 是現有檔案、目錄或裝置的名稱。

ENOENT 找不到路徑。

如需這些傳回碼和其他傳回碼的詳細資訊,請參閱errno_sys_errlist_doserrno_sys_nerr

備註

_mkdir 式會建立具有指定 dirname之 的新目錄。 每次呼叫 _mkdir 只能建立一個新目錄,因此只有 dirname 的最後一個元件可以命名新目錄。 _mkdir 不會轉譯路徑分隔符。 在 Windows NT 中,反斜杠 (\) 和正斜線 (/) 都是運行時間例程中字元字串中的有效路徑分隔符。

_wmkdir 是寬字元版本的 _mkdirdirname_wmkdir 引數是寬字元字串。 否則,_wmkdir_mkdir 的行為即會相同。

根據預設,此函式的全域狀態會限定於應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態

一般文字常式對應

Tchar.h 常式 _UNICODE_MBCS 未定義 _MBCS 已定義 _UNICODE 已定義
_tmkdir _mkdir _mkdir _wmkdir

需求

常式 必要的標頭
_mkdir <direct.h>
_wmkdir <direct.h><wchar.h>

如需相容性詳細資訊,請參閱相容性

程式庫

所有版本的 C 執行階段程式庫

範例

// crt_makedir.c

#include <direct.h>
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   if( _mkdir( "\\testtmp" ) == 0 )
   {
      printf( "Directory '\\testtmp' was successfully created\n" );
      system( "dir \\testtmp" );
      if( _rmdir( "\\testtmp" ) == 0 )
        printf( "Directory '\\testtmp' was successfully removed\n"  );
      else
         printf( "Problem removing directory '\\testtmp'\n" );
   }
   else
      printf( "Problem creating directory '\\testtmp'\n" );
}

範例輸出

Directory '\testtmp' was successfully created
Volume in drive C has no label.
Volume Serial Number is E078-087A

Directory of C:\testtmp

02/12/2002  09:56a      <DIR>          .
02/12/2002  09:56a      <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  15,498,690,560 bytes free
Directory '\testtmp' was successfully removed

另請參閱

目錄控制件
_chdir, _wchdir
_rmdir, _wrmdir