Condividi tramite


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
Per impostare la directory corrente, usare la funzione SetCurrentDirectory .

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
Failover trasparente SMB 3.0 (TFO)
SMB 3.0 con condivisioni file di scalabilità orizzontale (SO)
File system del volume condiviso cluster (CsvFS)
Resilient File System (ReFS)
 

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

Vedere anche

CreateDirectory

Funzioni di gestione directory

GetSystemDirectory

GetWindowsDirectory

RemoveDirectory

SetCurrentDirectory