Freigeben über


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
PCS_REPLACEDCHAR
Ein oder mehrere ungültige Zeichen wurden ersetzt.
PCS_REMOVEDCHAR
Ein oder mehrere ungültige Zeichen wurden entfernt.
PCS_TRUNCATED
Der zurückgegebene Pfad wird abgeschnitten.
PCS_PATHTOOLONG
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.
PCS_FATAL
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)