_chdir、_wchdir

改变当前的工作目录。

重要

此 API 不能用于在 Windows 运行时中执行的应用程序。有关详细信息,请参见 CRT functions not supported with /ZW(CRT 函数不支持使用/ZW)。

int _chdir( 
   const char *dirname 
);
int _wchdir( 
   const wchar_t *dirname 
);

参数

  • dirname
    新的工作目录路径。

返回值

这些函数返回值为 0,如果成功。 返回值– 1 指示失败。 如果找不到指定的路径,errno 设置为 ENOENT。 如果 dirname 是 NULL,则调用无效参数处理程序,如 参数验证 中所述。 如果允许继续执行,errno 被设置为 EINVAL ,函数返回-1。

备注

_chdir 函数将当前工作目录改为由 dirname指定的目录。 dirname 参数必须指定某个现有目录。 此函数可能会在改变任意驱动程序的当前工作目录。 如果新驱动器号在 dirname中被指定,默认驱动器号也被修改。 例如,如果A是默认驱动器号,\BIN 是当前工作目录,下面的命令更改驱动器 C 的当前工作目录并建立 C 作为新默认驱动程序:

_chdir("c:\\temp");

当您在路径中使用选项反斜杠字符 (\) 时,在 C 字符串中必须将两个反斜杠 (\\) 表示一个反斜杠 (\)。

_wchdir 是 _chdir的宽字符版本; _wchdir 的 dirname 参数是宽字符字符串. _wchdir ,否则_chdir 具有相同的行为。

通用文本程序映射:

Tchar.h 例程

未定义 _UNICODE 和 _MBCS

已定义 _MBCS

已定义 _UNICODE

_tchdir

_chdir

_chdir

_wchdir

要求

例程

必需的标头

可选标头

_chdir

<direct.h>

<errno.h>

_wchdir

<direct.h> or <wchar.h>

<errno.h>

有关兼容性的更多信息,请参见兼容性

示例

// crt_chdir.c
// arguments: C:\WINDOWS

/* This program uses the _chdir function to verify
   that a given directory exists. */

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

int main( int argc, char *argv[] )
{

   if(_chdir( argv[1] ) )
   {
      switch (errno)
      {
      case ENOENT:
         printf( "Unable to locate the directory: %s\n", argv[1] );
         break;
      case EINVAL:
         printf( "Invalid buffer.\n");
         break;
      default:
         printf( "Unknown error.\n");
      }
   }
   else
      system( "dir *.exe");
}
  

.NET Framework 等效项

System::Environment::CurrentDirectory

请参见

参考

目录控制

_mkdir、_wmkdir

_rmdir、_wrmdir

system、_wsystem