Función GetCurrentDirectory (winbase.h)

Recupera el directorio actual del proceso actual.

Sintaxis

DWORD GetCurrentDirectory(
  [in]  DWORD  nBufferLength,
  [out] LPTSTR lpBuffer
);

Parámetros

[in] nBufferLength

Longitud del búfer de la cadena de directorio actual, en TCHAR. La longitud del búfer debe incluir espacio para un carácter nulo de terminación.

[out] lpBuffer

Puntero al búfer que recibe la cadena de directorio actual. Esta cadena terminada en NULL especifica la ruta de acceso absoluta al directorio actual.

Para determinar el tamaño de búfer necesario, establezca este parámetro en NULL y el parámetro nBufferLength en 0.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto especifica el número de caracteres que se escriben en el búfer, sin incluir el carácter nulo de terminación.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Si el búfer al que apunta lpBuffer no es lo suficientemente grande, el valor devuelto especifica el tamaño necesario del búfer, en caracteres, incluido el carácter de terminación null.

Comentarios

Cada proceso tiene un único directorio actual que consta de dos partes:

  • Un designador de disco que es una letra de unidad seguida de dos puntos o un nombre de servidor seguido de un nombre de recurso compartido (\\servername\sharename)
  • Un directorio en el designador de disco
Para establecer el directorio actual, use la función SetCurrentDirectory .

Las aplicaciones multiproceso y el código de biblioteca compartida no deben usar
La función GetCurrentDirectory y debe evitar el uso de nombres de ruta de acceso relativos. El estado del directorio actual escrito por la función SetCurrentDirectory se almacena como una variable global en cada proceso, por lo que las aplicaciones multiproceso no pueden usar de forma confiable este valor sin posibles daños en los datos de otros subprocesos que también pueden leer o establecer este valor. Esta limitación también se aplica a las funciones SetCurrentDirectory y GetFullPathName . Excepción que se produce cuando se garantiza que la aplicación se ejecute en un único subproceso, por ejemplo, el análisis de nombres de archivo de la cadena de argumento de la línea de comandos en el subproceso principal antes de crear subprocesos adicionales. El uso de nombres de ruta de acceso relativos en aplicaciones multiproceso o código de biblioteca compartida puede producir resultados imprevisibles y no se admite.

En Windows 8 y Windows Server 2012, esta función es compatible con las tecnologías siguientes.

Tecnología Compatible
Protocolo Bloque de mensajes del servidor (SMB) 3.0
Conmutación por error transparente (TFO) de SMB 3.0
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO)
Sistema de archivos de Volumen compartido de clúster (CsvFS)
Sistema de archivos resistente a errores (ReFS)
 

Ejemplos

Para obtener un ejemplo, consulte Cambio del directorio actual.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winbase.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

CreateDirectory

Funciones de administración de directorios

GetSystemDirectory

GetWindowsDirectory

RemoveDirectory

SetCurrentDirectory