Funzione GetCurrentDirectory (winbase.h)
Recupera la directory corrente per il processo corrente.
Sintassi
DWORD GetCurrentDirectory(
[in] DWORD nBufferLength,
[out] LPTSTR lpBuffer
);
Parametri
[in] nBufferLength
Lunghezza del buffer per la stringa di directory corrente, in TCHAR. La lunghezza del buffer deve includere spazio per un carattere null di terminazione.
[out] lpBuffer
Puntatore al buffer che riceve la stringa di directory corrente. Questa stringa con terminazione Null specifica il percorso assoluto della directory corrente.
Per determinare le dimensioni del buffer necessarie, impostare questo parametro su NULL e il parametro nBufferLength su 0.
Valore restituito
Se la funzione ha esito positivo, il valore restituito specifica il numero di caratteri scritti nel buffer, senza includere il carattere Null di terminazione.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Se il buffer a cui punta lpBuffer non è sufficientemente grande, il valore restituito specifica le dimensioni necessarie del buffer, in caratteri, incluso il carattere di terminazione Null.
Commenti
Ogni processo ha una singola directory corrente costituita da due parti:
- Un designatore del disco che è una lettera di unità seguita da due punti o un nome del server seguito da un nome di condivisione (\\nomeserver\nomecontito)
- Directory nel designatore del disco
Le applicazioni multithreading e il codice della libreria condivisa non devono usare
Funzione GetCurrentDirectory ed evitare di usare nomi di percorso relativi. Lo stato della directory corrente scritto dalla funzione SetCurrentDirectory viene archiviato come variabile globale in ogni processo, pertanto le applicazioni multithreading non possono usare in modo affidabile questo valore senza possibile danneggiamento dei dati da altri thread che potrebbero anche leggere o impostare questo valore. Questa limitazione si applica anche alle funzioni SetCurrentDirectory e GetFullPathName . Eccezione durante l'esecuzione dell'applicazione in un singolo thread, ad esempio l'analisi dei nomi di file dalla stringa dell'argomento della riga di comando nel thread principale prima di creare eventuali thread aggiuntivi. L'uso di nomi di percorso relativi in applicazioni multithreading o codice di libreria condivisa può produrre risultati imprevedibili e non è supportato.
In Windows 8 e Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.
Tecnologia | Supportato |
---|---|
Protocollo SMB (Server Message Block) 3.0 | Sì |
Failover trasparente SMB 3.0 (TFO) | Sì |
SMB 3.0 con condivisioni file di scalabilità orizzontale (SO) | Sì |
File system del volume condiviso cluster (CsvFS) | Sì |
Resilient File System (ReFS) | Sì |
Esempi
Per un esempio, vedere Modifica della directory corrente.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | winbase.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |