Condividi tramite


Funzione GetFullPathNameTransactedA (winbase.h)

[Microsoft consiglia vivamente agli sviluppatori di usare mezzi alternativi per soddisfare le esigenze dell'applicazione. Molti scenari per cui è stato sviluppato TxF possono essere ottenuti tramite tecniche più semplici e più facilmente disponibili. Inoltre, TxF potrebbe non essere disponibile nelle versioni future di Microsoft Windows. Per altre informazioni e alternative a TxF, vedere Alternative all'uso di NTFS transazionale.]

Recupera il percorso completo e il nome file del file specificato come operazione transazionata.

Per eseguire questa operazione senza transazioni, utilizzare la funzione getFullPathName .

Per altre informazioni sui nomi di file e percorsi, vedere nomi di file, percorsi e spazi dei nomi.

Sintassi

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

Parametri

[in] lpFileName

Nome del file.

Questa stringa può usare nomi di file brevi (formato 8.3) o lunghi. Questa stringa può essere un nome di condivisione o di volume.

Il file deve risiedere nel computer locale; in caso contrario, la funzione ha esito negativo e l'ultimo codice di errore è impostato su ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.

[in] nBufferLength

Dimensioni del buffer per ricevere la stringa con terminazione Null per l'unità e il percorso, in TCHAR.

[out] lpBuffer

Puntatore a un buffer che riceve la stringa con terminazione Null per l'unità e il percorso.

[out] lpFilePart

Puntatore a un buffer che riceve l'indirizzo (in lpBuffer) del componente del nome file finale nel percorso. Specificare NULL se non è necessario ricevere queste informazioni.

Se lpBuffer punta a una directory e non a un file, lpFilePart riceve 0 (zero).

[in] hTransaction

Handle per la transazione. Questo handle viene restituito dalla funzione CreateTransaction.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è la lunghezza, in TCHARs, della stringa copiata in lpBuffer, senza includere il carattere Null di terminazione.

Se il buffer lpBuffer è troppo piccolo per contenere il percorso, il valore restituito è la dimensione, in TCHARs, del buffer necessario per contenere il percorso e il carattere Null di terminazione.

Se la funzione ha esito negativo per qualsiasi altro motivo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError.

Osservazioni

GetFullPathNameTransacted unisce il nome dell'unità e della directory correnti con un nome file specificato per determinare il percorso completo e il nome file di un file specificato. Calcola anche l'indirizzo della parte del nome file del percorso completo e del nome file. Questa funzione non verifica che il percorso e il nome file risultanti siano validi o che visualizzino un file esistente nel volume associato.

I nomi di condivisione e volume sono input validi per lpFileName. Ad esempio, l'elenco seguente identità il percorso restituito e i nomi di file se test-2 è un computer remoto e U: è un'unità mappata alla rete:

  • Se si specifica "\\test-2\q$\lh", il percorso restituito è "\\test-2\q$\lh"
  • Se si specifica "\\?\UNC\test-2\q$\lh", il percorso restituito è "\\?\UNC\test-2\q$\lh"
  • Se si specifica "U:" il percorso restituito è "U:\"
getFullPathNameTransacted non converte il nome file specificato, lpFileName. Se il nome file specificato esiste, è possibile usare GetLongPathNameTransacted, GetLongPathNameo GetShortPathName rispettivamente per eseguire la conversione in nomi di percorso lunghi o brevi.

Se il valore restituito è maggiore del valore specificato in nBufferLength, è possibile chiamare di nuovo la funzione con un buffer sufficientemente grande da contenere il percorso. Per un esempio di questo caso e per l'uso del buffer di lunghezza zero per l'allocazione dinamica, vedere la sezione Codice di esempio.

Nota Anche se il valore restituito in questo caso è una lunghezza che include il carattere Null di terminazione, il valore restituito in caso di esito positivo non include il carattere Null di terminazione nel conteggio.
 
In Windows 8 e Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.
Tecnologia Sostenuto
Protocollo SMB (Server Message Block) 3.0 No
SMB 3.0 Transparent Failover (TFO) No
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) No
Cluster Shared Volume File System (CsvFS) No
Resilient File System (ReFS) No
 

SMB 3.0 non supporta TxF.

Nota

L'intestazione winbase.h definisce GetFullPathNameTransacted come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista [solo app desktop]
server minimo supportato Windows Server 2008 [solo app desktop]
piattaforma di destinazione Finestre
intestazione winbase.h (include Windows.h)
libreria Kernel32.lib
dll Kernel32.dll

Vedere anche

funzioni di gestione file

GetFullPathName

GetLongPathNameTransacted

GetShortPathName

GetTempPath

SearchPath

NTFS transazionale