Condividi tramite


Funzione GetFullPathNameTransactedA (winbase.h)

[Microsoft consiglia vivamente agli sviluppatori di usare mezzi alternativi per raggiungere le esigenze dell'applicazione. Molti scenari sviluppati da TxF possono essere ottenuti tramite tecniche più semplici e più leggibili. 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, usare la funzione GetFullPathName .

Per altre informazioni sui nomi di file e percorso, vedere Nomi 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 i nomi di file brevi (8.3) o lunghi. Questa stringa può essere un nome di condivisione o 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 TCHARs.

[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 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, non incluso il carattere Null terminante.

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 informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

GetFullPathNameTransacted unisce il nome dell'unità corrente e della directory 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 oppure 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 di 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 del file specificato, lpFileName. Se il nome del file specificato esiste, è possibile usare rispettivamente GetLongPathNameTransacted, GetLongPathName o GetShortPathName per convertire 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 di grandi dimensioni sufficiente per contenere il percorso. Per un esempio di questo caso e l'uso di un 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 terminante, il valore restituito in caso di esito positivo non include il carattere Null terminante nel conteggio.
 
In Windows 8 e Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.
Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0 No
Failover trasparente SMB 3.0 (TFO) No
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) No
File system del volume condiviso del cluster (CsvFS) No
File system resiliente (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 preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
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