Condividi tramite


Funzione PathCleanupSpec (shlobj_core.h)

[PathCleanupSpec è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti. Può essere modificato o non disponibile nelle versioni successive.

Rimuove i caratteri non validi da un file o un nome di directory. Applica il formato di file 8.3 nelle unità che non supportano nomi di file lunghi.

Sintassi

int PathCleanupSpec(
  [in, optional] PCWSTR pszDir,
  [in, out]      PWSTR  pszSpec
);

Parametri

[in, optional] pszDir

Tipo: PCWSTR

Puntatore a un buffer con terminazione null contenente il percorso completo della directory che conterrà il file o la directory denominata in pszSpec. Il percorso non deve superare MAX_PATH caratteri in lunghezza, incluso il carattere null terminante. Questo percorso non viene modificato.

Questo valore può essere NULL.

[in, out] pszSpec

Tipo: PWSTR

Puntatore a un buffer con terminazione null contenente il file o il nome della directory da pulire. Nel caso di un file, includere l'estensione del file. Si noti che poiché '' è considerato un carattere non valido e verrà rimosso, questo buffer non può contenere un percorso più di una directory profonda.

All'uscita, il buffer contiene una stringa con terminazione null che include il nome pulito.

Questo buffer deve essere almeno MAX_PATH caratteri in lunghezza per evitare la possibilità di un overrun del buffer.

Valore restituito

Tipo: int

Restituisce uno o più dei valori seguenti.

Codice restituito Descrizione
PCS_REPLACEDCHAR
Sostituito uno o più caratteri non validi.
PCS_REMOVEDCHAR
Rimosso uno o più caratteri non validi.
PCS_TRUNCATED
Il percorso restituito viene troncato.
PCS_PATHTOOLONG
La funzione non è riuscita perché il percorso di input specificato in pszDir è troppo lungo per consentire la formazione di un nome file valido da pszSpec. Quando viene restituito questo flag, viene sempre accompagnato dal flag di PCS_FATAL.
PCS_FATAL
Il percorso pulito non è un nome di file valido. Questo flag viene sempre restituito in combinazione con PCS_PATHTOOLONG.

Commenti

Di seguito sono considerati caratteri non validi in tutti i nomi.

\ / : * ? " < > |

I caratteri di controllo sono considerati anche non validi. Se i nomi di file lunghi non sono supportati, anche i caratteri ;) e virgola (,) non sono validi.

L'unità denominata in pszDir viene controllata per determinare se il file system supporta nomi di file lunghi. In caso contrario, il nome in pszSpec viene troncato al formato 8.3 e il valore PCS_TRUNCATED restituito. Se pszDir è NULL, l'unità in cui è installato Windows viene usata per determinare il supporto di un nome file lungo.

Se il percorso completo, ovvero il numero di caratteri nel percorso in pszDir e il numero di caratteri nel nome pulito in pszSpec, supera MAX_PATH - 1 (per tenere conto del carattere null finale), la funzione restituisce PCS_PATHTOOLONG.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shlobj_core.h (include Shlobj.h)
Libreria Shell32.lib
DLL Shell32.dll (versione 5.0 o successiva)