W systemie Linux mogę mieć folder o nazwie temp.
.
Jeśli spróbuję zrobić mkdir temp.
na komputerze z systemem Windows okres końcowy jest obcinany.
Jeśli spróbuję zsynchronizować katalog z Linuksa do Windows, który ma okres końcowy, zakończy się niepowodzeniem (znaleziony w seafile przez kolegę).
Dlaczego?
linux
windows
filesystems
ntfs
warren
źródło
źródło
\\?\...
aby pominąć zwykłe parsowanie i podać surową ścieżkę do NT API, to ty mogą utwórz katalog z końcowym okresem.Odpowiedzi:
NTFS nie zabrania tego, to tylko API Win32. Jak zauważył Alex w komentarzu, jeśli używasz
\\?\...
Aby pominąć zwykłe parsowanie i podać surową ścieżkę do NT API, możesz utworzyć katalog z końcowym okresem.(Dlaczego to działa? Artykuł Przestrzenie nazw plików Win32 mówi: „W przypadku plików I / O przedrostek„ obsługuje duże ścieżki i nazwy plików, możesz przekroczyć limity MAX_PATH, które są w inny sposób wymuszane przez interfejsy API systemu Windows. ”)
Co się tyczy czemu okres końcowy jest usuwany, nie ma oficjalnej dokumentacji, ale moc muszę coś zrobić z kompatybilnością ze starymi programami MS-DOS lub Windows 3.11. W świecie nazw plików 8.3 puste rozszerzenie i żadne rozszerzenie wcale nie było takie samo - w obu przypadkach nazwa pliku
XYZ
byłby przechowywany jakoXYZ·····
i rozszerzenie jako···
(kropki reprezentujące bajty zerowe), więc mogły istnieć programy, które polegały na tym fakcie. Gdy system Windows 95 uzyskał obsługę długich nazw plików, zaczął przechowywać zarówno nazwę, jak i rozszerzenie jako pojedynczy ciąg, powodującxyz
ixyz.
stać się różnymi nazwami plików. Prawdopodobnie musiał rozebrać okres końcowy, aby uniknąć złamania takich programów.źródło