Интерфейс - [решено] Ограничение длины имени файла - как бороться?
-
flower
Интерфейс - [решено] Ограничение длины имени файла - как бороться?
Граждане, я поставлен в тупик маразмом семерки.. Какого черта в ней стоят примитивные ограничения длины имени файла?
К примеру, есть фильмы в коллекции. Один из них -
Диск D:, папка Films, название папки с фильмом -
Святые из бундока 2 - День всех святых @ The Boondock Saints II - All Saints Day (2009, боевик, триллер, драма, комедия, криминал, BD-REMUX 1080 P)
В ней находятся материалы разного рода (постеры и т.п.), а также сам фильм с названием
Святые из бундока 2 - День всех святых @ The Boondock Saints II - All Saints Day (2009, боевик, триллер, драма, комедия, криминал, BD-REMUX 1080 P) video.mkv
При таком раскладе файл открыть невозможно ни для воспроизведения, ни для того, чтобы даже его попросту переименовать. Приходится имя папки указывать очень короткое, тогда файл становится доступен для воспроизведения и прочих действий..
Как можно бороться с этим?
К примеру, есть фильмы в коллекции. Один из них -
Диск D:, папка Films, название папки с фильмом -
Святые из бундока 2 - День всех святых @ The Boondock Saints II - All Saints Day (2009, боевик, триллер, драма, комедия, криминал, BD-REMUX 1080 P)
В ней находятся материалы разного рода (постеры и т.п.), а также сам фильм с названием
Святые из бундока 2 - День всех святых @ The Boondock Saints II - All Saints Day (2009, боевик, триллер, драма, комедия, криминал, BD-REMUX 1080 P) video.mkv
При таком раскладе файл открыть невозможно ни для воспроизведения, ни для того, чтобы даже его попросту переименовать. Приходится имя папки указывать очень короткое, тогда файл становится доступен для воспроизведения и прочих действий..
Как можно бороться с этим?
-
timotv
Re: Интерфейс - [решено] Ограничение длины имени файла - как бороться?
Основная статья:
Для обхода ограничения необходимо:
1. Использовать FAR
2. Использовать Total Commander
3. Использовать Double Commander начиная с версии 0.8.0
4. Либо виндовскую комманду robocopy
В Windows 10 version 1607 (вышла 02.08.2016) это ограничение снято, но нужно активировать в реестре :
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD)
https://habrahabr.ru/post/307186/
Для обхода ограничения необходимо:
1. Использовать FAR
https://www.outsidethebox.ms/16798/#comment-26083
2. Использовать Total Commander
3. Использовать Double Commander начиная с версии 0.8.0
http://doublecmd.sourceforge.net/for...p=20180#p20181
http://doublecmd.sourceforge.net/snapshots/
https://sourceforge.net/p/doublecmd/wiki/Download/
4. Либо виндовскую комманду robocopy
В Windows 10 version 1607 (вышла 02.08.2016) это ограничение снято, но нужно активировать в реестре :
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD)
https://msdn.microsoft.com/en-us/lib...85).aspx#paths
https://habrahabr.ru/post/307186/
-
Phoenix
Re: Интерфейс - [решено] Ограничение длины имени файла - как бороться?
Диск Д отформатирован в какую файловую систему - FAT что-ли?
-
Phoenix
Re: Интерфейс - [решено] Ограничение длины имени файла - как бороться?
НТФС
Был бы фат - не спрашивал бы...
Был бы фат - не спрашивал бы...
- Вложения
-
Phoenix
Re: Интерфейс - [решено] Ограничение длины имени файла - как бороться?
Глючат таким образом только файлы с расширением .mkv?
-
Morpheus
Re: Интерфейс - [решено] Ограничение длины имени файла - как бороться?
Цитата flower:
Как можно бороться с этим?
Только укорачиванием имён. Обходных путей не существует.
Цитата flower:
я поставлен в тупик маразмом семерки..
А встречали больше?
Цитата flower:
Какого черта в ней стоят примитивные ограничения длины имени файла?
Как можно бороться с этим?
Интерфейс - [решено] Ограничение длины имени файла - как бороться?
Только укорачиванием имён. Обходных путей не существует.
Какая длина имени файла допустима?
Цитата flower:
я поставлен в тупик маразмом семерки..
Интерфейс - [решено] Ограничение длины имени файла - как бороться?
А встречали больше?
Filename - Wikipedia, the free encyclopedia
Цитата flower:
Какого черта в ней стоят примитивные ограничения длины имени файла?
Интерфейс - [решено] Ограничение длины имени файла - как бороться?
Имена файлов в разных системах
-
Morpheus
Re: Интерфейс - [решено] Ограничение длины имени файла - как бороться?
Morpheus,
В теме стоит "решено", но я бы подкорректировал вот в каком смысле.
В ситуации аналогичной flower, я для эксперимента (был повод) скачал mp3 файл с длинным именем по о-о-чень длинному пути (полный путь больше 400 символов), причём uTorrent написал "Ошибка: Write to disk: Системе не удаётся найти указанный путь", но файл распределил и сохранил!. Кликнул я в него и он стал проигрываться! Но вот скопировать такую структуру или файл куда-нибудь даже в сторону уменьшения (но более 260 символов) общего пути или открыть в какой-нибудь программке через диалог "Open file" может не получиться.
См.

Ваша ссылка
Ведь есть функции API с UNICODE версиями, обидно, что explorer их, судя по всему не использует. А выглядит это в описанной ситуации как реальный глюк, я бы даже сказал - маразм - файл-то можно использовать, но...
Хотя общая рекомендация остаётся - не используйте длинные пути.
Ваше мнение?
ps. У меня Windows 7x64 Pro Rus SP1
В теме стоит "решено", но я бы подкорректировал вот в каком смысле.
В ситуации аналогичной flower, я для эксперимента (был повод) скачал mp3 файл с длинным именем по о-о-чень длинному пути (полный путь больше 400 символов), причём uTorrent написал "Ошибка: Write to disk: Системе не удаётся найти указанный путь", но файл распределил и сохранил!. Кликнул я в него и он стал проигрываться! Но вот скопировать такую структуру или файл куда-нибудь даже в сторону уменьшения (но более 260 символов) общего пути или открыть в какой-нибудь программке через диалог "Open file" может не получиться.
См.
читать дальше »

Ваша ссылка
Какая длина имени файла допустима?
даёт неточную/неполную информацию, точнее написано вот здесь Naming Files, Paths, and Namespaces
Ведь есть функции API с UNICODE версиями, обидно, что explorer их, судя по всему не использует. А выглядит это в описанной ситуации как реальный глюк, я бы даже сказал - маразм - файл-то можно использовать, но...
Хотя общая рекомендация остаётся - не используйте длинные пути.
Ваше мнение?
ps. У меня Windows 7x64 Pro Rus SP1
-
student_j
Re: Интерфейс - [решено] Ограничение длины имени файла - как бороться?
Morpheus,
В теме стоит "решено", но я бы подкорректировал вот в каком смысле.
В ситуации аналогичной flower, я для эксперимента (был повод) скачал mp3 файл с длинным именем по о-о-чень длинному пути (полный путь больше 400 символов), причём uTorrent написал "Ошибка: Write to disk: Системе не удаётся найти указанный путь", но файл распределил и сохранил!. Кликнул я в него и он стал проигрываться! Но вот скопировать такую структуру или файл куда-нибудь даже в сторону уменьшения (но более 260 символов) общего пути или открыть в какой-нибудь программке через диалог "Open file" может не получиться.
См.

Ваша ссылка
Ведь есть функции API с UNICODE версиями, обидно, что explorer их, судя по всему не использует. А выглядит это в описанной ситуации как реальный глюк, я бы даже сказал - маразм - файл-то можно использовать, но...
Хотя общая рекомендация остаётся - не используйте длинные пути.
Ваше мнение?
ps. У меня Windows 7x64 Pro Rus SP1
В теме стоит "решено", но я бы подкорректировал вот в каком смысле.
В ситуации аналогичной flower, я для эксперимента (был повод) скачал mp3 файл с длинным именем по о-о-чень длинному пути (полный путь больше 400 символов), причём uTorrent написал "Ошибка: Write to disk: Системе не удаётся найти указанный путь", но файл распределил и сохранил!. Кликнул я в него и он стал проигрываться! Но вот скопировать такую структуру или файл куда-нибудь даже в сторону уменьшения (но более 260 символов) общего пути или открыть в какой-нибудь программке через диалог "Open file" может не получиться.
См.
читать дальше »

Ваша ссылка
Какая длина имени файла допустима?
даёт неточную/неполную информацию, точнее написано вот здесь Naming Files, Paths, and Namespaces
Ведь есть функции API с UNICODE версиями, обидно, что explorer их, судя по всему не использует. А выглядит это в описанной ситуации как реальный глюк, я бы даже сказал - маразм - файл-то можно использовать, но...
Хотя общая рекомендация остаётся - не используйте длинные пути.
Ваше мнение?
ps. У меня Windows 7x64 Pro Rus SP1
-
12345qwerty12345
Re: Интерфейс - [решено] Ограничение длины имени файла - как бороться?
В теории ограничение на длину имени файла или папки в NTFS составляет 255 символов, но на практике Windows API ограничивает до 244 символов (мне удалось создать).
В теории ограничение на длину пути к файлу или папке в NTFS составляет 32767 символов, но на практике Windows API ограничивает до 245 символов (мне удалось создать).
ОГРАНИЧЕНИЯ НА ДЛИНУ ИМЕН И ДЛИНУ ПУТИ ФАЙЛОВ И ПАПОК В WINDOWS API
Понятия «путь» и «имя файла»
Очень часто в компьютерной литературе используются термины «путь» и «имя файла» под разными значениями. Обычно под словом «путь» понимают адрес или расположение файла, т. е. диск, папка и подпапки в которых расположен файл. Однако Microsoft и другие считают, что в путь к файлу входит не только его расположение но и само имя файла. А некоторые подразумевают под словом «путь» только имена файла и папок, в которых он расположен, без указания диска. Некоторые пользователи полагают, что «имя файла» не включает расширение. В данной статье расширение всегда является частью имени файла. На примере ниже синим цветом выделен путь к файлу, а красным имя файла.
X:\папка\подпапка\файл.расширение
Зарезервированные символы и имена
Большинство часто употребляемых символов разрешается использовать в имени файла. Имя файла не должно содержать „” (знак больше), „:” (двоеточие), „«” (двойные кавычки), „/” (слеш), „\” (обратный слеш), „|” (вертикальная черта), „?” (вопросительный знак), „*” (звездочка), а также не может заканчиваться точкой или пробелом. Файлы также нельзя называть зарезервированными именами устройств: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7,COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, и LPT9.
Ограничения на длины имен файлов и путей
Существуют ограничения на длину имени файла и на длину пути. Абсолютное ограничение длины имени файла вместе включая путь к нему равно 260 символам. Этот предел называют термином MAX_PATH. На самом же деле на практике пределы для имен еще меньше из-за ряда других ограничений. Например, каждая строка на конце должна содержать так называемый нулевой символ, который обозначает конец строки. Несмотря на то, что маркер конца строки не отображается, он учитывается как отдельный символ при подсчете длины, а значит остается 259 символов доступных для имени файла и пути к нему. Первые три символа в пути используются для обозначения диска (например, C:\). Это уменьшает предел для имен папок, подпапок и файла до 256 символов.
На имя объекта (папки или файла) наложено ограничение длины 255 символов. Этот предел действителен только, если объект не расположен внутри папки. Так как при расположении объекта внутри папки, сумма длин всех папок в которых он расположен, разделителей и имени объекта ограничена 256 символами, то предел длины самого имени объекта меньше 255 символов.
Как видно из статьи весь корень зла не в файловой системе а в Windows API.
Если ограничение на длину имени файла или папки в Windows API на практике в 244 символа меня вполне устраивает, то ограничение на длину пути к файлу или папке в Windows API на практике в 245 символов ни меня ни большинсто пользователей не устраивает.
У меня риторический вопрос к программистам :
Можно ли внести самодельные изменения в Windows API после включения "Службы активации Windows" через "Компоненты Windows" ???
Если возможно то как ???
В теории ограничение на длину пути к файлу или папке в NTFS составляет 32767 символов, но на практике Windows API ограничивает до 245 символов (мне удалось создать).
ОГРАНИЧЕНИЯ НА ДЛИНУ ИМЕН И ДЛИНУ ПУТИ ФАЙЛОВ И ПАПОК В WINDOWS API
Понятия «путь» и «имя файла»
Очень часто в компьютерной литературе используются термины «путь» и «имя файла» под разными значениями. Обычно под словом «путь» понимают адрес или расположение файла, т. е. диск, папка и подпапки в которых расположен файл. Однако Microsoft и другие считают, что в путь к файлу входит не только его расположение но и само имя файла. А некоторые подразумевают под словом «путь» только имена файла и папок, в которых он расположен, без указания диска. Некоторые пользователи полагают, что «имя файла» не включает расширение. В данной статье расширение всегда является частью имени файла. На примере ниже синим цветом выделен путь к файлу, а красным имя файла.
X:\папка\подпапка\файл.расширение
Зарезервированные символы и имена
Большинство часто употребляемых символов разрешается использовать в имени файла. Имя файла не должно содержать „” (знак больше), „:” (двоеточие), „«” (двойные кавычки), „/” (слеш), „\” (обратный слеш), „|” (вертикальная черта), „?” (вопросительный знак), „*” (звездочка), а также не может заканчиваться точкой или пробелом. Файлы также нельзя называть зарезервированными именами устройств: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7,COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, и LPT9.
Ограничения на длины имен файлов и путей
Существуют ограничения на длину имени файла и на длину пути. Абсолютное ограничение длины имени файла вместе включая путь к нему равно 260 символам. Этот предел называют термином MAX_PATH. На самом же деле на практике пределы для имен еще меньше из-за ряда других ограничений. Например, каждая строка на конце должна содержать так называемый нулевой символ, который обозначает конец строки. Несмотря на то, что маркер конца строки не отображается, он учитывается как отдельный символ при подсчете длины, а значит остается 259 символов доступных для имени файла и пути к нему. Первые три символа в пути используются для обозначения диска (например, C:\). Это уменьшает предел для имен папок, подпапок и файла до 256 символов.
На имя объекта (папки или файла) наложено ограничение длины 255 символов. Этот предел действителен только, если объект не расположен внутри папки. Так как при расположении объекта внутри папки, сумма длин всех папок в которых он расположен, разделителей и имени объекта ограничена 256 символами, то предел длины самого имени объекта меньше 255 символов.
Как видно из статьи весь корень зла не в файловой системе а в Windows API.
Если ограничение на длину имени файла или папки в Windows API на практике в 244 символа меня вполне устраивает, то ограничение на длину пути к файлу или папке в Windows API на практике в 245 символов ни меня ни большинсто пользователей не устраивает.
У меня риторический вопрос к программистам :
Можно ли внести самодельные изменения в Windows API после включения "Службы активации Windows" через "Компоненты Windows" ???
Если возможно то как ???
- Вложения