3

Я спрашиваю, существует ли файловая система, которая, как известно, является возможной преемницей NTFS?

Я спрашиваю, потому что я только что купил новый внешний и понял, что путь к файлу, включая само имя файла, не может содержать более 255 символов. Это называется Microsoft "Длинное имя файла". Я предполагаю, что это связано с ограничением файловой системы, поэтому я ищу любые возможные альтернативы.

У меня машина на базе Windows 7, но я предполагаю, что будет стороннее программное обеспечение, которое будет работать с окнами, чтобы сделать новую файловую систему доступной для проводника Windows.

2 ответа2

18

Есть преемник NTFS. Это NTFS :)
(NTFS сохранила свое имя, но более новые версии Windows имеют разные и улучшенные версии NTFS)

Однако NTFS не является причиной ограничения длины имени файла. Проверьте эту ссылку от Microsoft. Я скопирую соответствующую часть, хотя это немного долго, чтобы скопировать с другой стороны.


Ограничение максимальной длины пути

В Windows API (с некоторыми исключениями, обсуждаемыми в следующих параграфах) максимальная длина пути равна MAX_PATH, которая определяется как 260 символов.

Локальный путь структурирован в следующем порядке: буква диска, двоеточие, обратная косая черта, компоненты имен, разделенные обратной косой чертой, и завершающий нулевой символ. Например, максимальный путь на диске D равен «D:\some 256-символьная строка пути», где «» представляет невидимый завершающий нулевой символ для текущей системной кодовой страницы. (Символы <> используются здесь для наглядности и не могут быть частью допустимой строки пути.)

Примечание. Функции ввода-вывода файлов в Windows API преобразуют «/» в «\» как часть преобразования имени в имя в стиле NT, кроме случаев использования «\?\"префикс, как описано в следующих разделах.

Windows API имеет много функций, которые также имеют версии Unicode, чтобы разрешить путь расширенной длины для максимальной общей длины пути 32 767 символов. Этот тип пути состоит из компонентов, разделенных обратной косой чертой, каждая из которых соответствует значению, возвращенному в параметре lpMaximumComponentLength функции GetVolumeInformation (обычно это значение составляет 255 символов). Чтобы указать путь расширенной длины, используйте "\?\" префикс. Например, "\?\D:\ очень длинный путь ".

12

Ограничение, на которое вы ссылаетесь, относится к Windows API, а не к файловой системе. Чтобы передать имена файлов длиннее символов MAX_PATH, Microsoft расширила API-интерфейсы для приема длинных имен Unicode до 32 767 символов. Но чтобы использовать более длинный путь, он должен быть в Юникоде с префиксом \\?\ и полностью определен (без относительных имен путей). По сути, это означает, что для использования этих более длинных путей есть поддержка файловой системы и ОС, но вам нужно приложение, которое знает, как выполнить свою часть.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .