Максимальная длина файла в NTFS (Windows XP и Windows Vista)?
Я создал таблицу базы данных, которая будет содержать имена загружаемых файлов. Какова максимальная длина файла в NTFS, используемого Windows XP или Vista?
14 ответов
отдельные компоненты имени файла (т. е. каждый подкаталог вдоль пути и конечное имя файла) ограничены 255 символами, а общая длина пути ограничена приблизительно 32 000 символами. Тем не менее, вы должны попытаться ограничить длину пути ниже 260 символов (MAX_PATH
), когда это возможно. См http://msdn.microsoft.com/en-us/library/aa365247.aspx для полной информации.
Это 257 символов. Быть точным: NTFS сама накладывает максимальную длину файла в несколько тысяч символов (около 30 000 чего-то). Однако Windows накладывает максимальную длину 260 Для пути+имени файла. Папка drive+занимает не менее 3 символов, поэтому вы получаете 257.
199 в Windows XP NTFS, я только что проверил.
Это не теория, а просто попытка на моем ноутбуке. Могут быть смягчающие последствия, но это физически не позволит мне сделать его больше.
есть ли другие настройки, ограничивающие это, интересно? Попробуйте сами.
по данным MSDN, это 260 символов. Он включает в себя "<NUL>"
-невидимый символ null, поэтому фактическая длина составляет 259.
но прочитайте статью, это немного сложнее.
длина в NTFS составляет 255. The NameLength
поле в NTFS $Filename
атрибут-это байт без смещения; это дает диапазон 0-255.
имя файла iself может находиться в разных "пространствах имен". До сих пор есть: POSIX, WIN32, DOS и (WIN32DOS - когда имя файла может быть изначально именем DOS). (Поскольку строка имеет длину, она мог бы содержать \0, но это приведет к проблемам и не выше пространства имен.)
таким образом, имя файла или каталог может содержать до 255 символов. При указании полного пути под Windows, вам нужно префикс пути с \\?\ (или использовать \\?\UNC\server\share для путей UNC) чтобы отметить этот путь как расширенный (~32k символов). Если ваш путь длиннее, вам придется установить рабочий каталог по пути (тьфу - побочные эффекты из-за процесса установки).
Я добавляю это к выше утвержденному ответу.
чтобы быть ясным, люди считают, что это 255-260 символов, потому что это все, что поддерживает Проводник Windows. Это приведет к ошибке, делая что-то вроде копии файла на имена файлов дольше, чем это. Однако программа может читать и писать гораздо более длинные имена файлов (именно так вы получаете длины, на которые жалуется Explorer). Microsoft "рекомендуемое исправление" в таких ситуациях, как это, чтобы открыть файл в оригинальная программа, которая его написала и переименовала.
в соответствии с новой документацией Windows SDK (8.0) кажется, что предоставляется новый предел пути. Существует новый набор путь функции обработки и определение PATHCCH_MAX_CCH следующим образом:
// max # of characters we support using the "\?\" syntax
// (0x7FFF + 1 for NULL terminator)
#define PATHCCH_MAX_CCH 0x8000
255 символов, хотя полный путь не должен быть длиннее, что хорошо. В Википедии есть хорошая таблица об этом:http://en.wikipedia.org/wiki/Filename.
эта часть официальной документации ясно говорит, что это 255 символов Unicode для NTFS, exFAT и FAT32 и 127 символов Юникода или 254 ASCII для UDF.
кроме того, максимальная длина имени пути всегда составляет 32 760 символов Юникода, причем каждый компонент пути не более 255 символов.
238! Я проверил его под Win7 32 бит со следующим скриптом bat:
set "fname="
for /l %%i in (1, 1, 27) do @call :setname
@echo %fname%
for /l %%i in (1, 1, 100) do @call :check
goto :EOF
:setname
set "fname=%fname%_123456789"
goto :EOF
:check
set "fname=%fname:~0,-1%"
@echo xx>%fname%
if not exist %fname% goto :eof
dir /b
pause
goto :EOF
на самом деле это 256 см. Сравнение Функциональных Возможностей Файловой Системы, Ограничения.
повторить пост http://fixunix.com/microsoft-windows/30758-windows-xp-file-name-length-limit.html
"предполагая, что мы говорим о NTFS, а не FAT32," 255 символов для path+file " - это ограничение проводника, а не самой файловой системы. NTFS поддерживает до 32000 символов Юникода, с каждым компонент до 255 символов.
Explorer-и Windows API-ограничивает вас до 260 символов для путь, включая букву диска, двоеточие, отделяя косой чертой и завершение нулевого символа. Можно прочитать более длинный путь в Windows, Если вы запустите его с помощью
\
"
Если вы прочитаете вышеуказанные сообщения, вы увидите, что есть 5-я вещь, в которой вы можете быть уверены: Найти хотя бы одного упрямого пользователя компьютера!
Я не могу создать файл с именем + period+extnesion в WS 2012 Explorer дольше, чем 224 символы. Не стреляйте в гонца!
в CMD того же сервера я не могу создать больше, чем 235 имя персонажа:
система не может найти указанный путь.
файл с именем 224 символов, созданный в Проводнике, не может быть открыт в Notepad++ - он просто придумывает новый файл вместо.