Любой язык - [решено] Архивирование файлов в каталоге
-
Tonny_Bennet
Re: Любой язык - [решено] Архивирование файлов в каталоге
Добрый день!!!
В данных рассуждениях идёт речь об архивации файлов в определённой папке.Всё работает,спасибо.
Но вот вопрос,как переделать код для задачи архивации файлов и папок с вложенными файлов,хранящихся в одной папке.
То есть у меня есть папка допустим D:/Source,а в свою очередь в этой папке есть и файлы и папки в которых хранятся файлы.
И также стоит задача архивировать все данные в один файл.
За ранее благодарен
В данных рассуждениях идёт речь об архивации файлов в определённой папке.Всё работает,спасибо.
Но вот вопрос,как переделать код для задачи архивации файлов и папок с вложенными файлов,хранящихся в одной папке.
То есть у меня есть папка допустим D:/Source,а в свою очередь в этой папке есть и файлы и папки в которых хранятся файлы.
И также стоит задача архивировать все данные в один файл.
За ранее благодарен
-
gora
Re: Любой язык - [решено] Архивирование файлов в каталоге
Цитирую:
Цитата 7-Zip Command Line Version User's Guide:
a (Add) command
Adds files to archive.
…
Switches that can be used with this command
…
-r (Recurse)
…
Цитата 7-Zip Command Line Version User's Guide:
a (Add) command
Adds files to archive.
…
Switches that can be used with this command
…
-r (Recurse)
…
-
megaloman
Re: Любой язык - [решено] Архивирование файлов в каталоге
Для начала я бы провёл организационные мероприятия. Все архивы поместил бы в отдельную папку. Очень неплохо, чтобы там батник делал подпапки с именем, содержащим год и месяц (и, может быть, день), в которые бы архивы создавались - зачем нужны архивы за неопределённый период. Туда бы записывал лог. В принципе, и батник можно поместить туда же. И, прежде чем удалять исходный файл, я бы убедился, что архив существует (а вдруг место на диске исчерпалось, а файлы будем удалять ...). И, кроме того, я бы застраховался от того, что два файла имеют одинаковые имена, но разные расширения, так как такие файлы обычно архиватором архивируются с одинаковыми именами-расширениями и, в лучшем случае, получим архив с несколькими файлами с одинаковыми именами и разными расширениями. А просили заархивировать каждый файл отдельно.
Код:
Source - где исходные файлы
Arch - где архивы
ExtArc - расширение, с которым создаётся архив
LogFile - куда пишется лог-файл
PgmArc - где архиватор (я делал для 7Z)
Например, файл D:\Source\траляля.exe
будет заархивирован в файл D:\Source\Arch\20100909\траляля.exe.7Z
и если файл D:\Source\Arch\20100909\траляля.exe.7Z существует, то удалим D:\Source\траляля.exe
Батник помещаем в назначенные задания, где укажем время его выполнения.
Можно при желании сделать в лог файле выдачу размера каждого файла до и после архивации.
Код:
Код: Выделить всё
Set Source=D:\Source
Set Arch=D:\Source\Arch
Set ExtArc=7Z
Set LogFile=D:\Source\Arch\{Archives.log
Set PgmArc="C:\Program Files\7-Zip\7z.exe"
Set DirDay=%Arch%\%Date:~6,4%%Date:~3,2%%Date:~0,2%
md "%DirDay%"
FOR %%i IN ("%Source%\*.*") DO Call :Arhivator "%%i"
GoTo :Eof
:Arhivator
Set N=%DirDay%\%~nx1.%ExtArc%
%PgmArc% a "%N%" %1
If Exist "%N%" (
Echo %Date% %Time% %N% >>%LogFile%
Del %1
)Source - где исходные файлы
Arch - где архивы
ExtArc - расширение, с которым создаётся архив
LogFile - куда пишется лог-файл
PgmArc - где архиватор (я делал для 7Z)
Например, файл D:\Source\траляля.exe
будет заархивирован в файл D:\Source\Arch\20100909\траляля.exe.7Z
и если файл D:\Source\Arch\20100909\траляля.exe.7Z существует, то удалим D:\Source\траляля.exe
Батник помещаем в назначенные задания, где укажем время его выполнения.
Можно при желании сделать в лог файле выдачу размера каждого файла до и после архивации.
-
X-myRzA
Re: Любой язык - [решено] Архивирование файлов в каталоге
Как можно упаковать каталог с файлами через lzma? Не просто каталог а именно каждую файл отдельно в свою каталог упаковать и удалить упакованный файл. Например, C:\temp\*.* там есть:
Код:
примерно так:
Код:
А WCX SSSR LZMA плагин через Total CMD так упакует:
Код:
и не может удалить оригинал файлы.
Код:
Код: Выделить всё
C:\temp\file.exe
C:\temp\distrib\file.nfo
C:\temp\distrib\folder\file.txtпримерно так:
Код:
Код: Выделить всё
C:\temp\file.exe.lzma
C:\temp\distrib\file.nfo.lzma
C:\temp\distrib\folder\file.txt.lzmaА WCX SSSR LZMA плагин через Total CMD так упакует:
Код:
Код: Выделить всё
C:\temp\file.exe.lzma
C:\temp\file.nfo.lzma
C:\temp\file.txt.lzmaи не может удалить оригинал файлы.
-
Iska
Re: Любой язык - [решено] Архивирование файлов в каталоге
Цитирую:
Цитата 7-Zip Command Line Version User's Guide:
a (Add) command
Adds files to archive.
…
Switches that can be used with this command
…
-r (Recurse)
…
Цитата 7-Zip Command Line Version User's Guide:
a (Add) command
Adds files to archive.
…
Switches that can be used with this command
…
-r (Recurse)
…
-
Iska
Re: Любой язык - [решено] Архивирование файлов в каталоге
Цитата kmc:
Честно говоря не пойму куда этот код вставлять-имеется ввиду после как строчек
Примеры есть непосредственно в справке 7-Zip:
Цитата -r (Recurse subdirectories) switch:
…
Examples
Код:
lists all *.doc files that belong to the archived root directory in the archive.zip archive.
Код:
adds all *.cpp and *.h files from directory src and all it's subdirectories to the archive.zip archive.
Код:
adds all files from directory folder1 and all it's subdirectories to the archive.7z archive.
Код:
searches all folder2 directories in all subdirectories, and adds them (including all subdirectories) to the archive.7z archive.
…
Честно говоря не пойму куда этот код вставлять-имеется ввиду после как строчек
Любой язык - [решено] Архивирование файлов в каталоге
Примеры есть непосредственно в справке 7-Zip:
читать дальше »
Цитата -r (Recurse subdirectories) switch:
…
Examples
Код:
Код: Выделить всё
7z l archive.zip *.doc -r-lists all *.doc files that belong to the archived root directory in the archive.zip archive.
Код:
Код: Выделить всё
7z a -tzip archive.zip -r src\*.cpp src\*.hadds all *.cpp and *.h files from directory src and all it's subdirectories to the archive.zip archive.
Код:
Код: Выделить всё
7z a archive.7z folder1\adds all files from directory folder1 and all it's subdirectories to the archive.7z archive.
Код:
Код: Выделить всё
7z a archive.7z -r folder2\searches all folder2 directories in all subdirectories, and adds them (including all subdirectories) to the archive.7z archive.
…
-
kmc
Re: Любой язык - [решено] Архивирование файлов в каталоге
Вот исходник,он в принципе такой же как здесь приводят в пример,единственное он не удаляет файлы которые берёт для архивирования.
Где здесь нужно поставить -r(.......) ????
Set Source=D:\Ser\Source
Set Arch=D:\Ser\Arch
Set ExtArc=7Z
Set LogFile=D:\Ser\Log\{Archives.log
Set PgmArc="C:\Program Files\7-Zip\7z.exe"
Set DirDay=%Arch%\%Date:~6,4%%Date:~3,2%%Date:~0,2%
md "%DirDay%"
FOR %%i IN ("%Source%\*.*") DO Call :Arhivator "%%i"
GoTo :Eof
:Arhivator
Set N=%DirDay%\%~nx1.%ExtArc%
%PgmArc% a "%N%" %1
If Exist "%N%" (
Echo %Date% %Time% %N% >>%LogFile%
)
Где здесь нужно поставить -r(.......) ????
Set Source=D:\Ser\Source
Set Arch=D:\Ser\Arch
Set ExtArc=7Z
Set LogFile=D:\Ser\Log\{Archives.log
Set PgmArc="C:\Program Files\7-Zip\7z.exe"
Set DirDay=%Arch%\%Date:~6,4%%Date:~3,2%%Date:~0,2%
md "%DirDay%"
FOR %%i IN ("%Source%\*.*") DO Call :Arhivator "%%i"
GoTo :Eof
:Arhivator
Set N=%DirDay%\%~nx1.%ExtArc%
%PgmArc% a "%N%" %1
If Exist "%N%" (
Echo %Date% %Time% %N% >>%LogFile%
)
-
Iska
Re: Любой язык - [решено] Архивирование файлов в каталоге
Нет не пробовал.Честно говоря не пойму куда этот код вставлять-имеется ввиду после как строчек
-
kmc