Compartir a través de


Función GetFullPathNameTransactedA (winbase.h)

[Microsoft recomienda encarecidamente que los desarrolladores usen medios alternativos para lograr las necesidades de la aplicación. Muchos escenarios para los que se desarrolló TxF se pueden lograr a través de técnicas más sencillas y disponibles con mayor facilidad. Además, es posible que TxF no esté disponible en versiones futuras de Microsoft Windows. Para obtener más información y alternativas a TxF, consulte Alternativas al uso de NTFS transaccional.]

Recupera la ruta de acceso completa y el nombre de archivo del archivo especificado como una operación de transacción.

Para realizar esta operación sin transacciones, use la función GetFullPathName.

Para obtener más información sobre los nombres de archivo y ruta de acceso, vea nombres de archivo, rutas de acceso y espacios de nombres.

Sintaxis

DWORD GetFullPathNameTransactedA(
  [in]  LPCSTR lpFileName,
  [in]  DWORD  nBufferLength,
  [out] LPSTR  lpBuffer,
  [out] LPSTR  *lpFilePart,
  [in]  HANDLE hTransaction
);

Parámetros

[in] lpFileName

Nombre del archivo.

Esta cadena puede usar nombres de archivo cortos (el formulario 8.3) o largos. Esta cadena puede ser un recurso compartido o un nombre de volumen.

El archivo debe residir en el equipo local; De lo contrario, se produce un error en la función y el último código de error se establece en ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.

[in] nBufferLength

Tamaño del búfer para recibir la cadena terminada en NULL para la unidad y la ruta de acceso, en TCHAR.

[out] lpBuffer

Puntero a un búfer que recibe la cadena terminada en NULL para la unidad y la ruta de acceso.

[out] lpFilePart

Puntero a un búfer que recibe la dirección (en lpBuffer) del componente de nombre de archivo final en la ruta de acceso. Especifique NULL si no necesita recibir esta información.

Si lpBuffer apunta a un directorio y no a un archivo, lpFilePart recibe 0 (cero).

[in] hTransaction

Identificador de la transacción. El función createTransaction devuelve este identificador.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es la longitud, en TCHAR, de la cadena copiada en lpBuffer, sin incluir el carácter nulo de terminación.

Si el búfer lpBuffer es demasiado pequeño para contener la ruta de acceso, el valor devuelto es el tamaño, en TCHAR, del búfer necesario para contener la ruta de acceso y el carácter nulo de terminación.

Si se produce un error en la función por cualquier otro motivo, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Observaciones

GetFullPathNameTransacted combina el nombre de la unidad y el directorio actuales con un nombre de archivo especificado para determinar la ruta de acceso completa y el nombre de archivo de un archivo especificado. También calcula la dirección de la parte del nombre de archivo de la ruta de acceso completa y el nombre de archivo. Esta función no comprueba que la ruta de acceso resultante y el nombre de archivo sean válidos o que vean un archivo existente en el volumen asociado.

Los nombres de recurso compartido y volumen son entradas válidas para lpFileName. Por ejemplo, las siguientes identidades de lista son la ruta de acceso devuelta y los nombres de archivo si test-2 es un equipo remoto y U: es una unidad asignada por red:

  • Si especifica "\\test-2\q$\lh", la ruta de acceso devuelta es "\\test-2\q$\lh"
  • Si especifica "\\\?\UNC\test-2\q$\lh", la ruta de acceso devuelta es "\\?\UNC\test-2\q$\lh"
  • Si especifica "U:", la ruta de acceso devuelta es "U:\"
GetFullPathNameTransacted no convierte el nombre de archivo especificado, lpFileName. Si existe el nombre de archivo especificado, puede usar GetLongPathNameTransacted, GetLongPathNameo GetShortPathName para convertir a nombres de ruta de acceso largos o cortos, respectivamente.

Si el valor devuelto es mayor que el valor especificado en nBufferLength, puede llamar a la función de nuevo con un búfer lo suficientemente grande como para contener la ruta de acceso. Para obtener un ejemplo de este caso, así como usar el búfer de longitud cero para la asignación dinámica, vea la sección Código de ejemplo.

Nota Aunque el valor devuelto en este caso es una longitud que incluye el carácter nulo de terminación, el valor devuelto en success no incluye el carácter nulo de terminación en el recuento.
 
En Windows 8 y Windows Server 2012, esta función es compatible con las siguientes tecnologías.
Tecnología Soportado
Protocolo bloque de mensajes del servidor (SMB) 3.0 No
Conmutación por error transparente (TFO) de SMB 3.0 No
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) No
Sistema de archivos de volumen compartido de clúster (CsvFS) No
Sistema de archivos resistente (ReFS) No
 

SMB 3.0 no admite TxF.

Nota

El encabezado winbase.h define GetFullPathNameTransacted como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows Vista [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2008 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de winbase.h (incluya Windows.h)
biblioteca de Kernel32.lib
DLL de Kernel32.dll

Consulte también

funciones de administración de archivos

GetFullPathName

GetLongPathNameTransacted

GetShortPathName

GetTempPath

SearchPath

NTFS transaccional