Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 10 » Интерфейс - Заменить каждую крайнюю папку в дереве имеющую файлы архивом.

Ответить
Настройки темы
Интерфейс - Заменить каждую крайнюю папку в дереве имеющую файлы архивом.

Старожил


Сообщения: 167
Благодарности: 8

Профиль | Отправить PM | Цитировать


Изменения
Автор: adgeuk
Дата: 02-08-2021
Пытаюсь создать архивы только для самых глубоко лежащих папок в дереве, и сохранить их там же.

Сначала, через поиск в Total Commander нахожу все конечные папки у которых нет подпапок.
Затем, выделяю все результаты поиска и создаю архив с галочкой "каждый файл в отдельный архив" чтобы каждая папка архивировалась отдельно.
По идее, каждая выделенная в результатах папка должна быть заархивирована в том же месте где и лежит.
Однако, все архивы кидаются в кучу, в одно место.

Пробовал и через результаты поиска в Total Commander и через результаты поиска в эксплорере, то же самое.
Как бы это провернуть?

Отправлено: 21:50, 31-07-2021

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата adgeuk:
По идее, каждая выделенная в результатах папка должна быть заархивирована в том же месте где и лежит. »
С чего бы это вдруг? Должно быть именно так, как оно и происходит:
Цитата adgeuk:
все архивы кидаются в кучу, в одно место. »
только не «в кучу», а в текущем каталоге.

Цитата adgeuk:
Как бы это провернуть? »
Скриптом. Хотя лично мне цель сего действа малопонятна.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:16, 31-07-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Старожил


Сообщения: 167
Благодарности: 8

Профиль | Отправить PM | Цитировать


Цитата Iska:
Хотя лично мне цель сего действа малопонятна. »
Мне нужно сохранить на облаке mail.ru большую структуру папок с фотографиями, причём сохранить так чтобы эти фотки не отсвечивались в разделе галерея когда я пользуюсь облаком на телефоне. Для этого мне нужно хранить их там в заархивированном виде. Делать один большой архив или образ папки я не могу по двум причинам. Во первых, на облаке есть ограничение - любой файл не может быть больше 4ГБ. Во вторых, в будущем, при скачивании архива на ПК, хочется иметь возможность быстрого просмотра фоток без распаковки всего архива. Поэтому, предпочтительно иметь много маленьких архивов, но без потери структуры дерева.

Цитата Iska:
только не «в кучу», а в текущем каталоге »
Я думал что каждый архив должен сохраниться в своём текущем каталоге, как если бы я последовательно архивировал каждую из этих папок по отдельности.

Цитата Iska:
Скриптом »
Сложновато для меня, но можно попробовать.

Последний раз редактировалось adgeuk, 01-08-2021 в 00:57.


Отправлено: 00:19, 01-08-2021 | #3


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


  1. Сделайте многотомный архив с шифрованием (в том числе имён файлов). Это решит обе Ваши проблемы зараз.
  2. Total Commander «умеет» смотреть внутрь архива без распаковки его целиком. Эскизы Вы внутри архива, понятно, не получите, но, вот, QuickView в соседней панели — вполне:
Скрытый текст
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:10, 01-08-2021 | #4


Старожил


Сообщения: 167
Благодарности: 8

Профиль | Отправить PM | Цитировать


Цитата Iska:
Сделайте многотомный архив с шифрованием (в том числе имён файлов) »
а почему именно с шифрованием?

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

Цитата Iska:
Эскизы Вы внутри архива, понятно, не получите »
Архиватор HaoZip умеет показывать эскизы фотографий в архивах.
Но для просмотра отдельно взятой фотографии "в полный рост" ему требуется распаковывать архив.

Отправлено: 14:31, 01-08-2021 | #5


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата adgeuk:
а почему именно с шифрованием? »
Дабы выполнить это требование:
Цитата adgeuk:
причём сохранить так чтобы эти фотки не отсвечивались в разделе галерея когда я пользуюсь облаком на телефоне. »
Правильно?

Цитата adgeuk:
Архиватор HaoZip умеет показывать эскизы фотографий в архивах.
Но для просмотра отдельно взятой фотографии "в полный рост" ему требуется распаковывать архив. »
Нет. Только если архив solid (непрерывный). В противном случае нужно извлечь в каталог временных файлов только файл этой одной фотографии. Это относится к любым архивам.

Цитата adgeuk:
Многотомный архив это выход, но хочется чтобы каждая тематическая папка с фотографиями была отдельным архивом.
Так удобнее и скачивать и делиться. »
Вы уверены, что у Вас не найдётся каталога, для которого архив займёт более 4 Gb?
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:08, 01-08-2021 | #6


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


В общем, я предлагаю Вам попробовать немного иначе, а именно: упаковывать в архив содержимое файлов каждого каталога, в котором есть файлы.

На PowerShell:
Скрытый текст
Код: Выделить весь код
function ScanSubFolder($oDirectoryInfo) {
    if($oDirectoryInfo.GetDirectories().Count -ne 0) {
        foreach($oSubDirectoryInfo in $oDirectoryInfo.GetDirectories()) {
            ScanSubFolder $oSubDirectoryInfo
        }
    }

    if($oDirectoryInfo.GetFiles().Count -ne 0) {
        "$($oDirectoryInfo.FullName)\$($oDirectoryInfo.Name).zip"
        Compress-Archive -Path "$($oDirectoryInfo.FullName)\*.*" -DestinationPath "$($oDirectoryInfo.FullName)\$($oDirectoryInfo.Name).zip" -CompressionLevel Optimal
    }
}

$oDirectoryInfo = [System.IO.DirectoryInfo]::new('C:\Мои проекты\0349')
ScanSubFolder $oDirectoryInfo
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:33, 01-08-2021 | #7


Старожил


Сообщения: 167
Благодарности: 8

Профиль | Отправить PM | Цитировать


Цитата Iska:
сохранить так чтобы эти фотки не отсвечивались в разделе галерея »
Просто фотки, которые сохранены на облаке mail.ru без архивации в любом случае будут отсвечивать в галерее.
А мне это не нужно, так как эти фото по работе, а галерею я хочу использовать для личных фото.

Цитата Iska:
Вы уверены, что у Вас не найдётся каталога, для которого архив займёт более 4 Gb? »
Пока такого не было, но в будущем, возможно.

Спасибо за код, попробую и отпишусь.

Отправлено: 21:39, 01-08-2021 | #8


Старожил


Сообщения: 167
Благодарности: 8

Профиль | Отправить PM | Цитировать


Iska, большое спасибо за помощь!
В целом, всё отлично!

Во время работы были ошибочки с двумя папками:

1.
"Путь не существует или является недоступным путём в файловой системе"
(возможно из-за символа квадратных скобок в имени, не уверян)

2.
"Невозможно преобразовать указанное значение DateTimeOffset в отметку времени ZIP-файла"

Но это не проблема, я упаковал эти два архива вручную.

Сейчас пытаюсь разобраться в коде, чтобы сохранять архивы не в той же папке где лежат архивируемые фотографии, а на одну папку выше, то есть рядом с папкой источником.
И после архивирования, хочу сделать чтобы папки с оригиналами удалялись.
Надеюсь, у меня получится.

Ещё раз, спасибо!

Отправлено: 14:49, 02-08-2021 | #9


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата adgeuk:
"Путь не существует или является недоступным путём в файловой системе"
(возможно из-за символа квадратных скобок в имени, не уверян) »
Возможно. Покажите здесь эти пути.

Цитата adgeuk:
"Невозможно преобразовать указанное значение DateTimeOffset в отметку времени ZIP-файла" »
Тут надо «копать», не сталкивался.

Цитата adgeuk:
Сейчас пытаюсь разобраться в коде, чтобы сохранять архивы не в той же папке где лежат архивируемые фотографии, а на одну папку выше, то есть рядом с папкой источником. »
Попробуем.

Цитата adgeuk:
И после архивирования, хочу сделать чтобы папки с оригиналами удалялись. »
Э… Не надо. Ни оригиналы не надо из этого же скрипта удалять, ни каталоги (особенно в данной рекурсивной реализации).

Отправлено: 15:55, 02-08-2021 | #10



Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 10 » Интерфейс - Заменить каждую крайнюю папку в дереве имеющую файлы архивом.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Темы и Стили - как в проводнике изменить цвет выделения в дереве папок просто Вася Оформление Windows 11/ 10 / 8 / 7 / Vista 3 05-04-2013 12:55
PowerShell - [решено] пакетное изменение разрешений NTFS папок ratibor79 Скриптовые языки администрирования Windows 2 25-11-2012 09:57
CMD/BAT - Копирование только самых новых файлов в папках с сохранением структуры папок hoh Скриптовые языки администрирования Windows 3 03-01-2012 10:22
CMD/BAT - [решено] групповое переименование папок в дереве WChek Скриптовые языки администрирования Windows 2 19-03-2009 11:43
Ошибка - Дублируется папка Мои документы в дереве DarkSpirit84 Microsoft Windows 2000/XP 4 15-02-2008 19:12




 
Переход