powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
25 сообщений из 25, страница 1 из 1
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905039
prot56k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Разрабатываю приложение для создания zip архивов. Есть одна проблема. При формировании архива, файлы с путями длинной более 256 символов не добавляются (словно их нет вообще в папке источнике). Использовал последние версии библиотеки VCLZip, ZipMaster + перепробовал среды разработки Delphi 7, C++Builder 6, Delphi XE, Delphi Tokyo 10.3. Все одно и тоже..., на выходе zip файл, в котором файлы с путями длинной более 256 символов отсутствуют... Подскажите пожалуйста куда копать? В инете много приложений которые скорее всего используют эти библиотеки, и проблем у них с такими файлами нет. Единственное что пришло в голову это использования префикса \\?\ но это прекрасно работает для простого копирования файлов через функцию CopyFile и т.д. а нужно именно для формирования zip архива.
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905040
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prot56kПодскажите пожалуйста куда копать?

В испходники VCLZip, ZipMaster и т.д. вестимо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905045
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
260 символов - лимит длины пути в NTFS.
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905048
prot56k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да неее, если использовать API функции CopyFile с префиксом \\?\ то все прекрасно работает - нет никакого ограничения, такие файлы копируются и все норм, а нужно именно zip архив...
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905064
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prot56k
если использовать API функции CopyFile с префиксом \\?\ то все прекрасно работает
Если бы все прекрасно работало - ты бы тут не писал.
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905066
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prot56k,

А если вот этим попробовать?
https://github.com/AlexanderBagel/FWZip
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905068
prot56k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreat,

Когда используется префикс \\?\ в связке с функцией CopyFile тогда все норм , но для формирование zip файла я
использую библиотеки VCLZip и ZipMaster - а там результат нулевой...
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905071
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prot56k,

Удачи тебе в "забарывании" зипа.
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905074
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы предложил паковать файлы в архив с именами 1, 2, 3 и т.п.
И отдельно положить таблицу соотвествия с реальными путями и именами файлов.
А при распаковке в коде подставлять нужные имена.

Однако, если у тебя получиться найти работающую комбинацию сорцов и библиотек - отпишись тут.
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905082
prot56k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreat,

я извиняюсь, может не так выразился..., когда имел ввиду длину в 260 символов...
само имя файла (папки) не может быть длиннее 260 символов, все верно.

Я имел ввиду, что на диске к примеру есть последовательность вложенных каталогов и в самом глубоком каталоге лежит файл, так вот его полное имя (включая путь из вложенных каталогов запросто может путь больше 260 символов) , Тотал Коммандер прекрасно работает с такими длинными полными путями. WinRAR прекрасно архивирует такие глубокие каталоги и т.д.
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905088
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prot56k
rgreat,

я извиняюсь, может не так выразился..., когда имел ввиду длину в 260 символов...
само имя файла (папки) не может быть длиннее 260 символов, все верно.

Я имел ввиду, что на диске к примеру есть последовательность вложенных каталогов и в самом глубоком каталоге лежит файл, так вот его полное имя (включая путь из вложенных каталогов запросто может путь больше 260 символов) , Тотал Коммандер прекрасно работает с такими длинными полными путями. WinRAR прекрасно архивирует такие глубокие каталоги и т.д.


а короткие имена использовать ... ?
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905089
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prot56k,

авторWindows limitation
One additional limit involves the maximum length of a fully qualified file name (path + name). The maximum length is 250 characters. This is a limit built into Windows. It is not a WinZip limit nor a limit of the Zip file format. Although there is no direct limit on the number of folder levels allowed, the character length limit prevents too many levels from being added.
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905090
prot56k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreat,

Да вот заглядывал внутрь Cobian Backup, Exiland Backup там вроде ZipMaster используется, его попробовал - все бестолку, на выходе ноль.

Хотя пробовал через эти программы архивировать - все ок, на выходе zip файл, внутри полная структура включая глубокие вложенные каталоги....

Я точно уверен, что большинство программ использует именно какие либы, а какие хз..
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905091
prot56k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql2012,

это как? приводить к формату 8.3?
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905093
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Я бы предложил паковать файлы в архив с именами 1, 2, 3 и т.п.
И отдельно положить таблицу соотвествия с реальными путями и именами файлов.
А при распаковке в коде подставлять нужные имена.
...

Тогда это будет не зипархив.
...
PS: для самопального инсталлятора как-то захотелось странного: например, помещать один и тот же исходный файл в архив в разные внутренние архивные папки - шиш там, нельзя, ни один архиватор не позволяет. Ну и еще разные глупости, вроде порядка обхода файлов при извлечении и дополнительных атрибутов файлов.
В итоге быстренько, используя zlib, написали то, что желала левая пятка... крошечная библиотечка (плюс две консольные утилиты для целей контроля и отладки).
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905094
prot56k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreat,

да я прекрасно все понимаю, но вот только что взял Total Commnader 9.22a - и создал последовательность из каталогов:
c:\temp\1111111111111111111111111111111111111111111111111111111111111111111111111111111111\11111111111111111111111111111111111111111111111111111111111\2222222222222222222222222222222222222222222222\3333333333333333333333333333333333333333333333333333333\444444\bob.txt

и все создается.... , далее пробую архивировать этот созданный файл через winrar - все ок, файл в архиве с такой же вложенностью каталогов... а вот проводник, да, тот сразу выдается сообщение, что мол не могу работать с такой длиной....
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905099
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prot56k,

Ну, ты можешь к своему ПО приложить WinRar . ;)
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905106
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
prot56k,

авторWindows limitation
One additional limit involves the maximum length of a fully qualified file name (path + name). The maximum length is 250 characters. This is a limit built into Windows. It is not a WinZip limit nor a limit of the Zip file format. Although there is no direct limit on the number of folder levels allowed, the character length limit prevents too many levels from being added.

Это не Windows limitation, а ограничение неграмотных разработчиков. UNC пути давно позволяют обойти это ограничение.
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905107
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
Это не Windows limitation, а ограничение неграмотных разработчиков. UNC пути давно позволяют обойти это ограничение.
UNC - костыли.

Не надо при разработке расчитывать на функционал, который работает не везде.
Не надо делать такие длинные пути без крайней необходимости.
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905155
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatНе надо при разработке расчитывать на функционал, который работает не везде.

Да везде он работает, везде. Но в исходники таки лезть придётся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905160
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Да везде он работает, везде. Но в исходники таки лезть придётся.

http://lurkmore.to/Взаимоисключающие_параграфы
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905163
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905271
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Не надо при разработке расчитывать на функционал, который работает не везде.
Не надо делать такие длинные пути без крайней необходимости.

Я так понимаю, что проблема не в том что ТС хочет создать длинный путь, а в том что у него УЖЕ есть такой путь и ему надо его заархивировать. И тут UNC - не костыли.
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905278
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prot56k,

JCL с его обвязкой к 7zip пробовал?
...
Рейтинг: 0 / 0
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
    #39905655
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите сюда 10509869
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]