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
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 | Sí |
Conmutación por error transparente (TFO) de SMB 3.0 | Sí |
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) | Sí |
Sistema de archivos de Volumen compartido de clúster (CsvFS) | Sí |
Sistema de archivos resistente a errores (ReFS) | Sí |
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 |