Есть ли какие-либо пределы длины пути к файлу в NTFS?

Я - счастливый пользователь ProFont, первоначально доступный на Mac, теперь доступном для всех.

13
задан user25749 7 December 2009 в 01:44
поделиться

3 ответа

Ограничение в 260 символов - это ограничение не для файловой системы, а для Win32 API. Win32 определяет MAX_PATH как 260, который API использует для проверки длины пути, передаваемого в такие функции, как FileCreate, FileOpen и т. Д. (Которые используются .NET в BCL).

Однако вы можете обойти правила Win32 и создать пути длиной до 32 КБ символов. В основном вам нужно использовать синтаксис "\\? \ C: \ MyReallyLongPath \ File.txt", который вы, возможно, не видели раньше. Последний раз я проверял, что классы File и FileInfo в .NET не позволяют вам использовать этот тип пути, но вы определенно можете сделать это из C / C ++. Вот ссылка для получения дополнительной информации.

http://msdn.microsoft.com/en-us/library/aa365247 (VS.85) .aspx

22
ответ дан 1 December 2019 в 20:43
поделиться

Цитируется из википедии

Имена файлов ограничены 255 кодовых слов UTF-16. Определенные имена зарезервированы в корне тома каталог и не может использоваться для файлы. Это: $ MFT, $ MFTMirr, $ LogFile, $ Volume, $ AttrDef,. (точка), $ Bitmap, $ Boot, $ BadClus, $ Secure, $ Upcase и $ Extend; [3]. (точка) и $ Extend - это оба каталога; в другие файлы. Ограничения ядра NT полные пути к коду 32767 UTF-16 слов.

http://en.wikipedia.org/wiki/NTFS

4
ответ дан 1 December 2019 в 20:43
поделиться

Док . Вы, безусловно, должны иметь возможность создавать более длинные пути к файлам, чем 255 байтов, если каждый отдельный компонент пути находится под ним. Однако вы должны использовать Unicode (W) версии вызовов доступа к файлам, чтобы получить такое поведение; если вы используете интерфейсы на основе байтов ANSI (A), такие как те, что используются в stdio, вы столкнетесь с ограничениями старого интерфейса пути до Unicode.

3
ответ дан 1 December 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: