Вверх ↑
Этот топик читают: Гость
Ответов: 174
Рейтинг: 1
#1: 2025-09-09 03:27:51 ЛС | профиль | цитата
Приветствую всех!
Подскажите пожалуйста, как на схеме реализовать выбор не отдельного файла для сжатия, а директорию?

Ну грубо говоря, 2 поля ввода: путь к папке которую надо сжать, и путь к папке которую надо "расжать"))) И кнопки сжать и распаковать...

Просто в стандартных примерах нашел только как работать с отдельными файлами.
карма: 1

0
Ответов: 949
Рейтинг: 202
#2: 2025-09-09 04:37:49 ЛС | профиль | цитата
Gitarist писал(а):
Подскажите пожалуйста, как на схеме реализовать выбор не отдельного файла для сжатия, а директорию?

Add(MainForm,2953706,77,98)
{
}
Add(FormatStr,12356033,476,119)
{
Mask="Compress-Archive -DestinationPath '%1' -Path '%2' -CompressionLevel Optimal\r\n"
link(onFString,7983124:doWork2,[])
link(Str2,10317909:Value,[(489,110)(468,110)(468,159)(363,159)])
}
Add(WinExec,7014996,567,105)
{
FileName="POWERSHELL"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(doConsoleTerminate)
Point(onConsoleError)
Point(onConsoleTerminate)
link(onConsoleError,1678668:doCharset,[])
link(onConsoleTerminate,11848859:doString,[(613,132)(613,174)])
}
Add(Browse,3352719,294,119)
{
Title="Выберите папку для архивации"
link(onBrowse,10317909:doValue,[])
}
Add(SDialog,4196860,413,119)
{
Filter="ZIP|*.zip"
Title="Укажите имя архива"
FileName="архив"
link(onExecute,12356033:doString,[])
}
Add(Menu,13741748,161,112)
{
Menu=#3:Zip|5:UnZip|
Point(onSelectNum)
link(onSelectNum,2305009:doEvent,[])
}
Add(IndexToChanel,2305009,217,119)
{
link(onEvent1,3352719:doBrowse,[])
link(onEvent2,12804908:doBrowse,[(284,132)(284,195)])
}
Add(Memory,10317909,357,119)
{
link(onData,4196860:doExecute,[])
}
Add(Memo,7450960,700,119)
{
Left=550
Top=160
Align=5
ScrollBars=3
}
Add(Charset,1678668,630,119)
{
link(onCharset,8268312:doWork2,[])
}
Add(FormatStr,11848859,630,168)
{
Mask="Операция выполнена"
link(onFString,8268312:doWork3,[(683,174)])
}
Add(HubEx,8268312,679,119)
{
link(onEvent,7450960:doAdd,[])
}
Add(FormatStr,1180237,476,189)
{
Mask="Expand-Archive -Path '%1' -DestinationPath '%2' -Force"
link(onFString,7983124:doWork3,[(543,195)])
link(Str2,11291600:Value,[(489,180)(468,180)(468,229)(363,229)])
}
Add(Browse,12804908,294,189)
{
Title="Выберите папку для разорхивации"
link(onBrowse,11291600:doValue,[])
}
Add(Memory,11291600,357,189)
{
link(onData,15071864:doExecute,[])
}
Add(HubEx,7983124,539,119)
{
link(onEvent,7014996:doConsoleExec,[])
}
Add(ODialog,15071864,413,189)
{
Filter="ZIP|*.zip"
Title="Укажите имя архива"
FileName="архив"
link(onExecute,1180237:doString,[])
}


Редактировалось 1 раз(а), последний 2025-09-09 04:43:25
карма: 19

1
Голосовали:Gitarist
Ответов: 174
Рейтинг: 1
#3: 2025-09-09 04:56:05 ЛС | профиль | цитата
Хм, вот оно как надо... Через Powershell...
Благодарю, Gunta!

А как реализовать пароль к архиву?

Редактировалось 1 раз(а), последний 2025-09-09 05:02:28
карма: 1

0
Ответов: 949
Рейтинг: 202
#4: 2025-09-09 07:26:45 ЛС | профиль | цитата
Gitarist писал(а):
А как реализовать пароль к архиву?


Add(MainForm,14162385,119,112)
{
Width=428
Height=437
link(onCreate,10721369:doString,[])
}
Add(WinExec,7014996,238,182)
{
FileName="POWERSHELL"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(doConsoleTerminate)
Point(onConsoleError)
Point(onConsoleTerminate)
link(onConsoleError,1678668:doCharset,[])
link(onConsoleTerminate,11848859:doString,[(284,209)(284,251)])
}
Add(Charset,1678668,301,196)
{
link(onCharset,8268312:doWork2,[])
}
Add(FormatStr,11848859,301,245)
{
Mask="Операция выполнена"
link(onFString,8268312:doWork3,[(354,251)])
}
Add(HubEx,8268312,350,196)
{
link(onEvent,273361:doMessage,[])
}
Add(HubEx,7983124,210,196)
{
link(onEvent,7014996:doConsoleExec,[])
}
Add(FormatStr,10721369,175,126)
{
@Hint=#34:Установка модуля - 7Zip4Powershell|42:https://github.com/thoemmi/7Zip4Powershell|22:Выполняется один раз. |22:Потом не используется.|0:|0:|0:|
Mask="If(-not(Get-InstalledModule 7Zip4Powershell -ErrorAction silentlycontinue))\r\n{\r\nSet-PSRepository PSGallery -InstallationPolicy Trusted\r\nInstall-Module 7Zip4Powershell -Confirm:$False -AllowClobber -Force\r\n}"
link(onFString,12028760:doConsoleExec,[])
AddHint(73,-111,215,91,@Hint)
}
Add(Message,273361,378,196)
{
}
Add(ChildGroupBox,4898866,147,245)
{
link(onEvent1,7983124:doWork3,[(214,251)])
}
BEGIN_SDK
Add(EditMulti,15896036,21,21)
{
EventCount=1
Width=545
Height=291
}
Add(GroupBox,8153585,35,105)
{
Top=186
Width=412
Height=212
Align=5
Caption="Expand-7Zip"
}
Add(FormatStr,1180237,231,238)
{
DataCount=3
Mask="Expand-7Zip -ArchiveFileName '%1' -TargetPath '%2' -Password '%3'"
link(onFString,15896036:onEvent1,[(382,244)(382,27)])
link(Str1,831840:Text,[(237,229)(188,229)])
link(Str2,9434246:Text,[])
link(Str3,1759392:Text,[(251,222)(286,222)])
}
Add(Label,1636102,77,28)
{
Left=15
Top=25
Width=85
Caption="Имя архива"
}
Add(Edit,831840,182,182)
{
Left=185
Top=25
Width=100
Text="my_archive.zip"
}
Add(Label,12576424,77,77)
{
Left=15
Top=50
Width=85
Caption="Парольна архив"
}
Add(Edit,1759392,280,182)
{
Left=185
Top=50
Width=100
Text="1234567890"
}
Add(Label,3172446,77,126)
{
Left=15
Top=75
Width=155
Height=17
Caption="Папка для разархивирования"
}
Add(Edit,9434246,238,140)
{
Left=185
Top=75
Width=100
Text=""
}
Add(Button,13822466,126,238)
{
Left=90
Top=145
Width=175
Caption="Разархивировать в папку"
link(onClick,1180237:doString,[])
}
Add(Browse,158158,182,140)
{
Title="Выберите путь для разархивации"
link(onBrowse,9434246:doText,[])
}
Add(Button,10975126,133,140)
{
Left=290
Top=75
Width=25
Caption=">>"
link(onClick,158158:doBrowse,[])
}
Add(Button,4428675,77,182)
{
Left=290
Top=25
Width=25
Caption=">>"
link(onClick,15071864:doExecute,[])
}
Add(ODialog,15071864,133,182)
{
Filter="ZIP|*.zip"
Title="Укажите имя архива"
FileName="архив"
link(onExecute,831840:doText,[])
}
END_SDK
Add(ChildGroupBox,12215777,147,196)
{
link(onEvent1,7983124:doWork2,[])
}
BEGIN_SDK
Add(EditMulti,2350357,21,21)
{
EventCount=1
Width=608
Height=298
}
Add(GroupBox,8451390,35,105)
{
Width=412
Height=186
Align=2
Caption="Compress-7Zip"
}
Add(FormatStr,12356033,210,238)
{
DataCount=4
Mask="Compress-7Zip -ArchiveFileName '%1' -Path '%2' -OutputPath '%3' -Format Zip -CompressionLevel Normal -Password '%4'"
link(onFString,2350357:onEvent1,[(588,244)(588,27)])
link(Str1,6115084:Text,[(216,229)(181,229)])
link(Str2,2446431:Text,[])
link(Str3,5476848:Text,[])
link(Str4,16516210:Text,[(237,222)(251,222)])
}
Add(Browse,3352719,175,98)
{
Title="Выберите папку для архивации"
link(onBrowse,2446431:doText,[])
}
Add(SDialog,4196860,483,119)
{
Filter="ZIP|*.zip"
Title="Укажите имя архива"
FileName="архив"
}
Add(Label,2721990,77,42)
{
Left=15
Top=25
Width=85
Caption="Имя архива"
}
Add(Edit,6115084,175,189)
{
Left=185
Top=25
Width=100
Text="my_archive.zip"
}
Add(Label,3244956,77,91)
{
Left=15
Top=50
Width=85
Caption="Парольна архив"
}
Add(Edit,16516210,245,182)
{
Left=185
Top=50
Width=100
Text="1234567890"
}
Add(Label,3537587,77,140)
{
Left=15
Top=75
Width=85
Caption="Папка для архивирования"
}
Add(Edit,2446431,217,98)
{
Left=185
Top=75
Width=100
Text=""
}
Add(Label,5331116,77,182)
{
Left=15
Top=100
Width=85
Caption="Папка для сохранения архива"
}
Add(Edit,5476848,224,140)
{
Left=185
Top=100
Width=100
Text=""
}
Add(Button,11432728,112,238)
{
Left=90
Top=145
Width=175
Caption="Архивировать папку"
link(onClick,12356033:doString,[])
}
Add(Button,9689642,126,98)
{
Left=290
Top=75
Width=25
Caption=">>"
link(onClick,3352719:doBrowse,[])
}
Add(Browse,7750646,175,140)
{
Title="Выберите папку для сохранения архива"
link(onBrowse,5476848:doText,[])
}
Add(Button,16581130,126,140)
{
Left=290
Top=100
Width=25
Caption=">>"
link(onClick,7750646:doBrowse,[])
}
END_SDK
Add(WinExec,12028760,231,112)
{
FileName="POWERSHELL"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(doConsoleTerminate)
Point(onConsoleError)
Point(onConsoleTerminate)
}

карма: 19

0
4
Сообщение
...
Прикрепленные файлы
(файлы не залиты)