Максимальная длина файла в NTFS (Windows XP и Windows Vista)?



Я создал таблицу базы данных, которая будет содержать имена загружаемых файлов. Какова максимальная длина имени файла в NTFS, используемого Windows XP или Vista?

1312   14  

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.

получил это на framework 4.5 при попытке сохранить файл.

Exception thrown

199 на Windows XP NTFS, я только что проверил.

Это не теория, а просто попытка на моем ноутбуке. Могут быть смягчающие эффекты, но это физически не позволит мне сделать его больше.

есть ли какие-то другие настройки, ограничивающие это, интересно? Попробуйте сами.

по данным MSDN, это 260 символов. Она включает в себя "<NUL>" -невидимый символ null, поэтому фактическая длина составляет 259.

но прочитайте статью, это немного сложнее.

длина в NTFS составляет 255. Элемент NameLength поле в NTFS

Я добавляю это к выше утвержденному ответу.

чтобы быть ясным, люди считают, что это 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 поддерживает пути длиной до 32 000 символов Юникода, каждый из которых компонент до 255 символов.

проводник-и Windows API-ограничивает вас до 260 символов для путь, включая букву диска, двоеточие, отделяя косой чертой и завершение нулевого символа. Можно прочитать более длинный путь в Windows, Если вы начинаете его с \"

Если вы прочитаете вышеуказанные сообщения, вы увидите, что есть 5-я вещь, в которой вы можете быть уверены: Найти хотя бы одного упрямого пользователя компьютера!

Я не могу создать файл с именем+period+extnesion в WS 2012 Explorer дольше, чем 224 символы. Не стреляйте в посыльного!

в CMD того же сервера я не могу создать больше, чем 235 имя персонажа:

система не может найти указанный путь.

файл с 224-символьным именем, созданный в Проводнике, не может быть открыт в Notepad++ - он просто придумывает новый файл вместо.

Comments

    Ничего не найдено.