Was führt dazu, dass vor einem Dateipfad ungültige Zeichen (\\?\) erscheinen?

Was führt dazu, dass vor einem Dateipfad ungültige Zeichen (\\?\) erscheinen?

Was führt dazu, dass ungültige Zeichen ( \\?\) nur in bestimmten Ordnern vor einem Dateipfad stehen?

Ungültiger Dateipfad:

\\?\D:\computerfiles...

Die Dateien mit dem ungültigen Pfad können nicht im Originalordner geöffnet werden.

Bei manchen Dateien werden die \\?\Zeichen nur am ursprünglichen Speicherort angezeigt, sie werden jedoch NICHT angezeigt, wenn die Datei in einen anderen Ordner kopiert wird.

Ich sehe dies nur, wenn ich eine Datei finde, die sich NICHT öffnen lässt (z. B. ein Bild) und ich die Eigenschaften überprüfe, um das ungültige Präfix zu erkennen

Und wie kann ich alle Pfade mit einem ungültigen Präfix finden?

Antwort1

Das ist kein ungültiges Zeichen. Es ist ein Signal für Windows, die Pfadverstümmelung auszuschalten. Dadurch können Pfade länger als sein MAX_PATH.

GemäßBenennen von Dateien, Pfaden und Namespaces:

Datei-E/A-Funktionen in der Windows-API konvertieren "/" in "\" als Teil der Konvertierung des Namens in einen Namen im NT-Stil, außer bei Verwendung des Präfixes "\\?\", wie in den folgenden Abschnitten beschrieben.

Die Windows-API verfügt über viele Funktionen, die auch Unicode-Versionen haben, um einen Pfad mit erweiterter Länge für eine maximale Gesamtpfadlänge von 32.767 Zeichen zu ermöglichen. Dieser Pfadtyp besteht aus Komponenten, die durch Backslashs getrennt sind, jeweils bis zu dem Wert, der im lpMaximumComponentLength-Parameter der GetVolumeInformation-Funktion zurückgegeben wird (dieser Wert beträgt normalerweise 255 Zeichen). Um einen Pfad mit erweiterter Länge anzugeben, verwenden Sie das Präfix „\\?\“. Beispiel: „\\?\D:\sehr langer Pfad“.

Offenbar wurde der Windows Explorer irgendwann aktiviert, um auf lange Pfade zuzugreifen. Dabei können Sie im Feld „Speicherort“ auf der Eigenschaftenseite einer Datei/eines Ordners Folgendes sehen:

  1. Der „normale“ Weg, wenn er kurz genug ist
  2. Der 8.3-Namenspfad (etwa C:\WHATEV~1\...), wenn 8.3-Namen auf diesem Dateisystem vorhanden sind und kurz genug sind
  3. Der erweiterte Pfad sonst

tl;dr: Dein Weg ist zu lang.

verwandte Informationen