PathCleanupSpec-Funktion (shlobj_core.h)
[PathCleanupSpec ist für die Verwendung in den Betriebssystemen verfügbar, die im Abschnitt Anforderungen angegeben sind. Sie kann in nachfolgenden Versionen geändert oder nicht verfügbar sein.]
Entfernt unzulässige Zeichen aus einem Datei- oder Verzeichnisnamen. Erzwingt das Dateinamenformat 8.3 auf Laufwerken, die keine langen Dateinamen unterstützen.
Syntax
int PathCleanupSpec(
[in, optional] PCWSTR pszDir,
[in, out] PWSTR pszSpec
);
Parameter
[in, optional] pszDir
Typ: PCWSTR
Ein Zeiger auf einen Puffer mit NULL-Beendigung, der den vollqualifizierten Pfad des Verzeichnisses enthält, das die Datei oder das Verzeichnis mit dem Namen "pszSpec" enthält. Der Pfad darf MAX_PATH Zeichen nicht überschreiten, einschließlich des endenden NULL-Zeichens. Dieser Pfad wird nicht geändert.
Dieser Wert kann NULL sein.
[in, out] pszSpec
Typ: PWSTR
Ein Zeiger auf einen Puffer mit NULL-Beendigung, der den zu bereinigenden Datei- oder Verzeichnisnamen enthält. Fügen Sie im Fall einer Datei die Erweiterung der Datei ein. Beachten Sie, dass dieser Puffer keinen Pfad mit mehr als einer Verzeichnistiefe enthalten kann, da "" als ungültiges Zeichen gilt und entfernt wird.
Beim Beenden enthält der Puffer eine NULL-Zeichenfolge, die den bereinigten Namen enthält.
Dieser Puffer sollte mindestens MAX_PATH Zeichen lang sein, um die Möglichkeit eines Pufferüberlaufs zu vermeiden.
Rückgabewert
Typ: int
Gibt mindestens einen der folgenden Werte zurück.
Rückgabecode | Beschreibung |
---|---|
|
Ein oder mehrere ungültige Zeichen wurden ersetzt. |
|
Ein oder mehrere ungültige Zeichen wurden entfernt. |
|
Der zurückgegebene Pfad wird abgeschnitten. |
|
Die Funktion ist fehlgeschlagen, da der in pszDir angegebene Eingabepfad zu lang ist, um die Bildung eines gültigen Dateinamens aus pszSpec zu ermöglichen. Wenn dieses Flag zurückgegeben wird, wird es immer vom PCS_FATAL-Flag begleitet. |
|
Der bereinigte Pfad ist kein gültiger Dateiname. Dieses Flag wird immer in Verbindung mit PCS_PATHTOOLONG zurückgegeben. |
Hinweise
Die folgenden Zeichen gelten als ungültige Zeichen in allen Namen.
\ / : * ? " < > |
Steuerzeichen gelten auch als ungültig. Wenn lange Dateinamen nicht unterstützt werden, sind auch die Semikolonzeichen (;) und Kommazeichen (,) ungültig.
Das Laufwerk mit dem Namen in pszDir wird überprüft, um festzustellen, ob das Dateisystem lange Dateinamen unterstützt. Andernfalls wird der Name bei pszSpec auf das Format 8.3 abgeschnitten und der PCS_TRUNCATED Wert zurückgegeben. Wenn pszDirNULL ist, wird das Laufwerk, auf dem Windows installiert ist, verwendet, um die Unterstützung für lange Dateinamen zu ermitteln.
Wenn der vollständige Pfad – die Anzahl der Zeichen im Pfad bei pszDir plus die Anzahl der Zeichen im bereinigten Namen bei pszSpec – MAX_PATH – 1 überschreitet (um das endende NULL-Zeichen zu berücksichtigen), gibt die Funktion PCS_PATHTOOLONG zurück.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | shlobj_core.h (einschließlich Shlobj.h) |
Bibliothek | Shell32.lib |
DLL | Shell32.dll (Version 5.0 oder höher) |