Gibt es eine Länge Grenzen des Dateipfades in NTFS?
Frage
Warum kann ich einen tiefen Weg, dessen Zeichen in Pfad erstellen, ist mehr als 255 in NTFS-Dateisystem? Es scheint eine Grenze von FAT32, aber auch existiert in NTFS? Kann jemand einige Dokumente zur Verfügung stellen?
Vielen Dank!
Lösung
Die 260 Zeichenbegrenzung ist keine Einschränkung des Dateisystems, sondern von der Win32-API. Win32 definiert MAX_PATH als 260, ist, was die API wird unter Verwendung der Länge des Weges in Funktionen wie Filecreate, Fileopen weitergegeben zu überprüfen usw. (die in der BCL von .NET verwendet werden).
Sie können jedoch die Win32-Regeln umgehen und schaffen Pfade bis zu 32K Zeichen Grundsätzlich Sie verwenden müssen "\\ \ C: \ MyReallyLongPath \ File.txt". Syntax, die können Sie noch nie zuvor gesehen hat. Zuletzt überprüfte ich, verhindert die Datei und Fileinfo-Klassen in .NET Sie von dieser Art von Pfad, aber man kann es auf jeden Fall tun, von C / C ++. Hier ist ein Link für weitere Informationen.
http://msdn.microsoft.com/en -US / library / aa365247 (VS.85) aspx
Andere Tipps
Zitat von Wikipedia
Dateinamen sind auf 255 UTF-16-Codewörter. bestimmte Namen ist in dem Volumen root vorbehalten Verzeichnis und kann nicht verwendet werden Dateien. Diese sind: $ MFT, $ MFTMirr, $ LogFile, $ Volumen, $ AttrDef. (Punkt), $ Bitmap, $ Stiefel, $ BadClus, $ secure, $ Upcase und $ verlängern; [3]. (Dot) und $ Extend sind beide Verzeichnisse; das andere sind Dateien. Die NT-Kernel Grenzen vollständige Pfade zu 32.767 UTF-16-Code Wörter.
Doc . Sie sollten sicherlich in der Lage sein, mehr Dateipfade als 255 Bytes zu erstellen, solange jede einzelne Pfadkomponente unter dem ist. Allerdings müssen Sie sein, die Unicode (W) Versionen der Dateizugriff Anrufe über dieses Verhalten zu erhalten; wenn Sie die ANSI (A) Byte-basierten Schnittstellen, wie sie von stdio verwendet verwenden, werden Sie mit den Grenzen der alten Pre-Unicode-Pfad-Schnittstelle gesteckt werden.