Да. Концевой слеш однозначно идентифицирует то, что последним копонентом в указанном пути является папка, а не файл.
Да. \ - обратный слэш. / - обычный (прямой) слеш.
Норма для пути в ОС Windows - это обратный слеш.
Если указать вместо него обычный:
файловая система это нормально скушает.
Поясню, приведя вольный перевод
выдержек из справки:
Каждый раз, когда Вы куда-либо вводите путь (в строку проводника или в некоторых функциях в программировании)
происходит так называемая
нормализация пути:
- слешы / заменяются на обратные \
- переменные окружения, например %windir%, раскрываются в полный путь
- относительный путь преобразовуется в полный, в том числе раскрываются точки (.) и (..),
например, c:\path1\path2\..\file преобразовуется в c:\path1\file
(.. - обзначает ссылка на родительский каталог; . - означает ссылка на текущий каталог)
- происходит проверка корректности семантики символов. Так, нижеуказанные символы имеют специальное значение
и не могут быть использованы для именования файловых объектов:
- < (знак меньше)
- > (знак больше)
- : (двоеточие)
- " (кавычка)
- / (прямой слеш)
- \ (обратный слеш)
- | (вертикальная черта или канал)
- ? (знак вопроса)
- * (звездочка)
- символы с кодом ASC от 1 до 31, кроме именования файловых потоков, где это разрешено
- символ NUL (ASC = 0), который обозначает окончание строки
- проверка ограничения на маскимальную длину пути в 260 символов (константа MAX_PATH): C:\
строка длинной 256 символов<NUL>
При этом для каталогов остается еще меньше символов: 260 - (8 + 3 + 1) = 248, т.е. C:\
каталог(и) длинной 243 символа\файл длинной 8.3<NUL>
8.3 - означает 8 символов для имени и 3 символа - для расширения имени.
- путь не должен заканчиваться знаком пробела или точкой.
- отсутствие зарезервированных системой имен CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9.
Большинство правил нормализации перестают действовать,
если в начале пути указать специальный набор символов:
\\?\ - это будет работать только в юникодных функциях.
Таким образом, можно создать файл, который обычным способом удалить нельзя.
Кроме того, отключается проверка на максимальную длину пути,
которая теперь станет достигать ~32767 символов с ограничением в 255 символов для каждого компонента в таком пути.
\\.\ - используется для прямого доступа к устройствам (но не файлам) через специальніе API-функции. Пример \\.\PhysicalDiskX, \\.\COM100, \\.\CdRomX