Funzione SetCurrentDirectory (winbase.h)

Modifica la directory corrente per il processo corrente.

Sintassi

BOOL SetCurrentDirectory(
  [in] LPCTSTR lpPathName
);

Parametri

[in] lpPathName

Percorso della nuova directory corrente. Questo parametro può specificare un percorso relativo o un percorso completo. In entrambi i casi, il percorso completo della directory specificata viene calcolato e archiviato come directory corrente.

Per altre informazioni, vedi Denominazione di file, percorsi e spazi dei nomi.

Per impostazione predefinita, il nome è limitato a MAX_PATH caratteri.

Suggerimento

A partire da Windows 10, versione 1607, è possibile acconsentire esplicitamente a rimuovere la limitazione della MAX_PATH. Per informazioni dettagliate, vedere la sezione Limitazione massima della lunghezza del percorso di Denominazione di file, percorsi e spazi dei nomi.

Importante

L'impostazione di una directory corrente più lunga di MAX_PATH causa l'esito negativo di CreateProcessW .

Il carattere finale prima del carattere Null deve essere una barra rovesciata ('\'). Se non si specifica la barra rovesciata, verrà aggiunta. Specificare pertanto MAX_PATH-2 caratteri per il percorso, a meno che non si includa la barra rovesciata finale. In questo caso, specificare >MAX_PATH-1 caratteri per il percorso.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Ogni processo ha una singola directory corrente costituita da due parti:

  • Un operatore di progettazione del disco che è una lettera di unità seguita da due punti o da un nome di condivisione del server (\\nomeserver\sharename)
  • Directory nel designatore del disco

La directory corrente è condivisa da tutti i thread del processo: se un thread modifica la directory corrente, influisce su tutti i thread nel processo.

Le applicazioni multithreading e il codice di libreria condivisa devono evitare di chiamare la funzione SetCurrentDirectory a causa del rischio di influire sui calcoli relativi dei percorsi eseguiti da altri thread. Al contrario

Le applicazioni multithreading e il codice di libreria condivisa devono evitare di usare percorsi relativi in modo che non siano interessati dalle modifiche apportate alla directory corrente eseguita da altri thread.

Nota

La directory corrente per un processo è bloccata durante l'esecuzione del processo. Ciò impedisce l'eliminazione, lo spostamento o la ridenominazione della directory.

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