|
|
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
Добрый день. Разрабатываю приложение для создания zip архивов. Есть одна проблема. При формировании архива, файлы с путями длинной более 256 символов не добавляются (словно их нет вообще в папке источнике). Использовал последние версии библиотеки VCLZip, ZipMaster + перепробовал среды разработки Delphi 7, C++Builder 6, Delphi XE, Delphi Tokyo 10.3. Все одно и тоже..., на выходе zip файл, в котором файлы с путями длинной более 256 символов отсутствуют... Подскажите пожалуйста куда копать? В инете много приложений которые скорее всего используют эти библиотеки, и проблем у них с такими файлами нет. Единственное что пришло в голову это использования префикса \\?\ но это прекрасно работает для простого копирования файлов через функцию CopyFile и т.д. а нужно именно для формирования zip архива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 19:46 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
prot56kПодскажите пожалуйста куда копать? В испходники VCLZip, ZipMaster и т.д. вестимо. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 19:49 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
260 символов - лимит длины пути в NTFS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 20:08 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
да неее, если использовать API функции CopyFile с префиксом \\?\ то все прекрасно работает - нет никакого ограничения, такие файлы копируются и все норм, а нужно именно zip архив... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 20:11 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
prot56k если использовать API функции CopyFile с префиксом \\?\ то все прекрасно работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 20:48 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 20:50 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
rgreat, Когда используется префикс \\?\ в связке с функцией CopyFile тогда все норм , но для формирование zip файла я использую библиотеки VCLZip и ZipMaster - а там результат нулевой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 20:55 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
prot56k, Удачи тебе в "забарывании" зипа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 21:00 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
Я бы предложил паковать файлы в архив с именами 1, 2, 3 и т.п. И отдельно положить таблицу соотвествия с реальными путями и именами файлов. А при распаковке в коде подставлять нужные имена. Однако, если у тебя получиться найти работающую комбинацию сорцов и библиотек - отпишись тут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 21:06 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
rgreat, я извиняюсь, может не так выразился..., когда имел ввиду длину в 260 символов... само имя файла (папки) не может быть длиннее 260 символов, все верно. Я имел ввиду, что на диске к примеру есть последовательность вложенных каталогов и в самом глубоком каталоге лежит файл, так вот его полное имя (включая путь из вложенных каталогов запросто может путь больше 260 символов) , Тотал Коммандер прекрасно работает с такими длинными полными путями. WinRAR прекрасно архивирует такие глубокие каталоги и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 21:13 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
prot56k rgreat, я извиняюсь, может не так выразился..., когда имел ввиду длину в 260 символов... само имя файла (папки) не может быть длиннее 260 символов, все верно. Я имел ввиду, что на диске к примеру есть последовательность вложенных каталогов и в самом глубоком каталоге лежит файл, так вот его полное имя (включая путь из вложенных каталогов запросто может путь больше 260 символов) , Тотал Коммандер прекрасно работает с такими длинными полными путями. WinRAR прекрасно архивирует такие глубокие каталоги и т.д. а короткие имена использовать ... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 21:19 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 21:19 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
rgreat, Да вот заглядывал внутрь Cobian Backup, Exiland Backup там вроде ZipMaster используется, его попробовал - все бестолку, на выходе ноль. Хотя пробовал через эти программы архивировать - все ок, на выходе zip файл, внутри полная структура включая глубокие вложенные каталоги.... Я точно уверен, что большинство программ использует именно какие либы, а какие хз.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 21:20 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
sql2012, это как? приводить к формату 8.3? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 21:22 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
rgreat Я бы предложил паковать файлы в архив с именами 1, 2, 3 и т.п. И отдельно положить таблицу соотвествия с реальными путями и именами файлов. А при распаковке в коде подставлять нужные имена. ... Тогда это будет не зипархив. ... PS: для самопального инсталлятора как-то захотелось странного: например, помещать один и тот же исходный файл в архив в разные внутренние архивные папки - шиш там, нельзя, ни один архиватор не позволяет. Ну и еще разные глупости, вроде порядка обхода файлов при извлечении и дополнительных атрибутов файлов. В итоге быстренько, используя zlib, написали то, что желала левая пятка... крошечная библиотечка (плюс две консольные утилиты для целей контроля и отладки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 21:27 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
rgreat, да я прекрасно все понимаю, но вот только что взял Total Commnader 9.22a - и создал последовательность из каталогов: c:\temp\1111111111111111111111111111111111111111111111111111111111111111111111111111111111\11111111111111111111111111111111111111111111111111111111111\2222222222222222222222222222222222222222222222\3333333333333333333333333333333333333333333333333333333\444444\bob.txt и все создается.... , далее пробую архивировать этот созданный файл через winrar - все ок, файл в архиве с такой же вложенностью каталогов... а вот проводник, да, тот сразу выдается сообщение, что мол не могу работать с такой длиной.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 21:30 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
prot56k, Ну, ты можешь к своему ПО приложить WinRar . ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 21:36 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
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 пути давно позволяют обойти это ограничение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 21:50 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
alekcvp Это не Windows limitation, а ограничение неграмотных разработчиков. UNC пути давно позволяют обойти это ограничение. Не надо при разработке расчитывать на функционал, который работает не везде. Не надо делать такие длинные пути без крайней необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 21:51 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
rgreatНе надо при разработке расчитывать на функционал, который работает не везде. Да везде он работает, везде. Но в исходники таки лезть придётся. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 23:08 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Да везде он работает, везде. Но в исходники таки лезть придётся. http://lurkmore.to/Взаимоисключающие_параграфы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 23:22 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2019, 23:38 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
rgreat Не надо при разработке расчитывать на функционал, который работает не везде. Не надо делать такие длинные пути без крайней необходимости. Я так понимаю, что проблема не в том что ТС хочет создать длинный путь, а в том что у него УЖЕ есть такой путь и ему надо его заархивировать. И тут UNC - не костыли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 10:26 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
prot56k, JCL с его обвязкой к 7zip пробовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 10:37 |
|
||
|
Проблема добавления файла с длинной пути более 256 символов в zip архив. Delphi + VCLZip
|
|||
|---|---|---|---|
|
#18+
Посмотрите сюда 10509869 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 15:57 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39905088&tid=2038756]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
176ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 534ms |

| 0 / 0 |
