Выдает ошибку, когда имя больше(не знаю точно) 300 знаков, да еще по алгоритму новое имя в три раза длиннее 900. Ошибка: dwError = 3.
По мсдн можно до около 32000 знаков в имени с поддержкой уникоде и WinXP. Так что где реальность?
M>Выдает ошибку, когда имя больше(не знаю точно) 300 знаков, да еще по алгоритму новое имя в три раза длиннее 900. Ошибка: dwError = 3. M>По мсдн можно до около 32000 знаков в имени с поддержкой уникоде и WinXP. Так что где реальность?
Там надо специальным образом имена файлов записывать, чтобы можно было использовать "длинные" длинные имена:
\\?\C:\Folder1\Folder2\file.ext
Здравствуйте, Alex Fedotov, Вы писали:
AF>Там надо специальным образом имена файлов записывать, чтобы можно было использовать "длинные" длинные имена: AF>\\?\C:\Folder1\Folder2\file.ext
Именно так я и записываю, и вот некоторая уточненная информация. Привер работает только для до 260 знаков в имени файла. Т.о. следуя моему алгоритму, у меня 260/3, а это около 80 знаков, ограничение на длину файла. Мало.
Здравствуйте, mmmaloy, Вы писали:
M>Здравствуйте, Alex Fedotov, Вы писали:
AF>>Там надо специальным образом имена файлов записывать, чтобы можно было использовать "длинные" длинные имена: AF>>\\?\C:\Folder1\Folder2\file.ext
M>Именно так я и записываю, и вот некоторая уточненная информация. Привер работает только для до 260 знаков в имени файла. Т.о. следуя моему алгоритму, у меня 260/3, а это около 80 знаков, ограничение на длину файла. Мало.
Это на NTFS в UNICODE до 32000 символов. Если я не ошибаюсь, в остальных случаях — 256.
M>Именно так я и записываю, и вот некоторая уточненная информация. Привер работает только для до 260 знаков в имени файла. Т.о. следуя моему алгоритму, у меня 260/3, а это около 80 знаков, ограничение на длину файла. Мало.
Совершенно дурацкий вопрос, а какую версию функции вы используете, Unicode или нет?
Здравствуйте, mmmaloy, Вы писали:
M>Привет. Короче кто подскажет, сколько знаков может иметь максимум в реала имя фала/папки M>По мсдн можно до около 32000 знаков в имени с поддержкой уникоде и WinXP. Так что где реальность?
Если почитать MSDN повнимательней , то можно увидеть следующее:
The Unicode versions of several functions permit paths that exceed the MAX_PATH length if the path has the "\\?\" prefix. [...] However, each component in the path cannot be more than MAX_PATH characters long.
То есть весь путь целиком может быть до 32000 знаков, а вот каждая из его компонент, в том числе и имя файла — не больше MAX_PATH
Здравствуйте, Kozyrevsky, Вы писали:
K>То есть весь путь целиком может быть до 32000 знаков, а вот каждая из его компонент, в том числе и имя файла — не больше MAX_PATH
Большое тебе сердечное спасибо
Теперь все на своих местах, а то че то не сходилось у мя в голове.
Когда нибудь надо на ангицкий подналеч
Здравствуйте, Kozyrevsky, Вы писали:
K>Если почитать MSDN повнимательней , то можно увидеть следующее:
K>
K>The Unicode versions of several functions permit paths that exceed the MAX_PATH length if the path has the "\\?\" prefix. [...] However, each component in the path cannot be more than MAX_PATH characters long.
K>То есть весь путь целиком может быть до 32000 знаков, а вот каждая из его компонент, в том числе и имя файла — не больше MAX_PATH
Что, кстати, не совсем соответствует действительности. Максимальная длина компоненты пути определяется функцией GetVolumeInformation и, вообще говоря, зависит от файловой системы. При этом VFAT и NTFS возвращают 255, а не MAX_PATH=260.
> При этом VFAT и NTFS возвращают 255, а не MAX_PATH=260. >
Эт максимальная длина имени компоненты, а вот максимальная длина пути именно 260 (когда-то очень давно это проверял)!!!
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Здравствуйте, Alex Fedotov, Вы писали:
AF>Что, кстати, не совсем соответствует действительности. Максимальная длина компоненты пути определяется функцией GetVolumeInformation и, вообще говоря, зависит от файловой системы. При этом VFAT и NTFS возвращают 255, а не MAX_PATH=260.
Да действительно, на практике получается 255(NTFS), но я лишь процитировал MSDN.
Кстати в ходе экспирементов выяснилась интересная особенность: проводник не может удалить файл с именем ровно 255 символов