у нас есть программа, которая распаковывает файл и сохраняет распакованные файлы в каталоге.

При разархивировании может быть вероятность, что разархивированный файл будет иметь то же имя, что и разархивированный нами, как часть другого заархивированного файла.

1.zip

test.log
test1.log

2.zip

test2.log
test1.log

У меня есть цикл, чтобы просмотреть файл * .zip, а затем в заявлении он разархивирует файл.

Там это терпит неудачу, из-за дубликата файла.

Я хочу избежать замены файла, я не хочу перезаписывать файл.

Можете ли вы предложить какую-то технику, с помощью которой я могу сохранить все четыре файла?

2 ответа2

0

Простой ответ - извлечь каждый архив в отдельный каталог, тем самым предоставив каждому архиву уникальное пространство имен (например, 1/test.log, 1/test1.log, 2/test2.log, 2/test1.log).

Если они должны оказаться в одном месте, вы можете вместо этого добавить имя архива к каждому имени файла (например, 1__test.log, 1__test1.log, 2__test2.log, 2__test1.log). Это, безусловно, требует больше усилий, и все еще существует очень малая вероятность того, что конфликт имен может произойти, если имя архива содержит символьную последовательность разделителя (часть __ в моих примерах), которую вы использовали.

0

Просто используйте WINRAR и отметьте все опции контекстного меню в настройках.

Затем вы можете выбрать все архивы для распаковки, щелкнуть по ним правой кнопкой мыши и перетащить их в папку, в которой вы хотите их разместить, и откроется контекстное меню WinRar.

Затем вы можете выбрать либо извлекать их все в один и тот же каталог, либо каждый в свой собственный именованный каталог (названный по имени файла zip).

Если вы хотите, чтобы они были в одном каталоге, выберите «Извлечь здесь».

WinRar автоматически обнаруживает дубликаты имен файлов и предлагает вам ряд опций.

Просто выберите «Переименовать все», и к каждому последующему дубликату будет добавлено число в скобках. например (1), (2) и т. д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .