Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Delphi чеккер акков, исправить ошибку http://www.cyberforum.ru/delphi-beginners/thread641836.html
нашел чеккер акков, переделал под себя. программа работает, только вот не чеккат. в TXT файле 2 рабочих акк, а оно пишет, что не валид. код unit Unit1; interface uses Windows,...
Индикатор Led для Delphi Delphi
Есть ли для делфи такой компонент индикатор Led(Свотодиод) как в Hiasm? На рисунке обведен красним.
Корявый поиск Delphi
Добрый вечер! Имеется функция dir := getchannellistchannel_dir.AsString; if FindFirst(dir + getchannellistchannel_prefix.AsString + '*.PlayReport', faAnyFile, fs) = 0 then repeat ...
Delphi Запуск оконного приложения через сервис Подскажите как через сервис запустить GUI-приложение. unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, ShellAPI; type TService1 =... http://www.cyberforum.ru/delphi-beginners/thread641613.html
Delphi Является ли исходная строка символов анаграммой http://www.cyberforum.ru/delphi-beginners/thread641594.html
2. Определите, является ли исходная строка символов анаграммой (читается одинаково с начала и с конца).
Delphi Русские буквы не выводит
Создал текстовой редактор, в котором есть компонент RichEdit. Запускаю его, пишу русские буквы, вопросительные знаки выводит. Закрываю прогу, запускаю, пишу русские буквы, но уже в этот раз...
TDBGRID - стилистика таблицы-сетки Delphi
Доброго дня Как поменять толщину или цвет рамки в таблице, например в dbgridе. Хочется в программе создать стилистику без рамок, фоновых заливок и т.п. чтобы чисто на белом фоне были только данные...
Delphi VWinAPI работа с окнами Добрый день, у меня возникла проблема, есть программа, в котором 3-текстовых поля и 5-кнопок, я это окно нахожу так оп названию: var h: HWND; begin h:=FindWindow(nil,'Название программы'); //... http://www.cyberforum.ru/delphi-beginners/thread641538.html
Delphi Как уменьшить размер проекта? http://www.cyberforum.ru/delphi-beginners/thread641527.html
Привет форумчане:) Когда я в Delphi XE2 создаю проект и компилирую, то exe'шник весит более 7-8 Мб. А в то время в Delphi 7 этот проект весит меньше 1 Мб, ну где-то 700-800 КБ. Почему так весит и...
Delphi Условие по месяцам Здравствуйте. Есть переменная. a:=(DateTimePicker1.Date); Нужно условие. Если а равно марту любого числа и года тогда переменная b:=5. Как это можно реализовать? http://www.cyberforum.ru/delphi-beginners/thread641518.html
Fedor82
4 / 4 / 2
Регистрация: 18.10.2011
Сообщений: 89
Завершенные тесты: 1
0

Архивация папки ч/з WinRar

24.08.2012, 07:52. Просмотров 2168. Ответов 1
Метки (Все метки)

Привет!
Есть следующий код.
Не могу разобраться, нужно заархивировать папку, после архивации удалить эту папку?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
var
{rar: string;}
 
Rlst: LongBool; //результат выполнения
StartUpInfo: TStartUpInfo; //параметры будущего процесса
ProcessInfo: TProcessInformation; //Отслеживание выполнения
 
CurrDir:string; //текущая папка
ArchiveDir:string; //папку куда складываем архивы
AppToRun:string; //путь до winrar
CommandLine:string; //строка параметров
filename:string; //имя файла
Error:integer; //номер ошибкок
ExitCode: Cardinal; //код завершения
 
begin
//Определяем текущюю директорию.
CurrDir:= ExtractFilePath(Application.ExeName);
 
//Определяем путь к WinRAR.
AppToRun:='C:\Program Files\WinRAR\WinRar.exe';
 
//Проверяем, есть ли в текущей директории программы, папка Archive.
//Если нет - создаем.
If not DirectoryExists(CurrDir+'Archive') then
MkDir(CurrDir+'Archive');
 
//Открываем выбор файла для архивирования.
//Если выбрали, то обрабатываем.
//В FileName записываем полный путь к выбранному файлу
filename:=DirB; //   DirB= C:\TestDir\7_1_1_24082012\
 
//В CommandLine записываем командную строку
//В нашем случае командная строка должна выглядеть:
//<пробел> a -ep "<путь до архива>" "<путь до файла>"
CommandLine:=' a m -ep " "'+CurrDir+'Archive\'+ExtractFileDir(filename)+'.rar" "'+filename+'"';
 
//Заполнение нулями всего StartUpInfo.
FillChar(StartUpInfo, SizeOf(TStartUpInfo), 0);
//После этого выставляем в нем некоторые параметры.
with StartUpInfo do
begin
//Содержит количество байтов, занимаемых структурой TStartUpInfo.
//Обязательно для заполнения. Инициализируйте как SizeOf(TStartUpInfo).
cb := SizeOf(TStartUpInfo);
//Содержит набор флагов, позволяющих управлять созданием дочернего процесса.
//Показываем окно, курсор - часики.
dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
//Определяет как должно выглядеть окно запущенного приложения.
//Нормальное отображение
wShowWindow := SW_SHOWNORMAL;
end;
 
//Сам запуск WinRAR с параметрами.
//По сути, мы запускаем следующее:
//WinRar.exe a -ep "<путь до архива>" "<путь до файла>"
showmessage(AppToRun+CommandLine);
Rlst:= CreateProcess(PChar(AppToRun), PChar(CommandLine),
nil, nil, false, NORMAL_PRIORITY_CLASS,
nil, nil, StartUpInfo, ProcessInfo);
 
//Отслеживаем выполнение.
//Если запуск успешен
if Rlst then
with ProcessInfo do
begin
//Ждем завершения инициализации.
WaitForInputIdle(hProcess, INFINITE);
//Ждем завершения процесса.
WaitforSingleObject(ProcessInfo.hProcess, INFINITE);
//Получаем код завершения.
GetExitCodeProcess(ProcessInfo.hProcess, ExitCode);
//Закрываем дескриптор процесса.
CloseHandle(hThread);
//Закрываем дескриптор потока.
CloseHandle(hProcess);
showmessage('Архивация завершена успешно');
end
//Иначе
else
begin
//В случае ошибки - выводим на экран сообщение.
Error := GetLastError;
MessageDlg(SysErrorMessage(Error), mtError, [mbOk], 0);
end;
end;
Добавлено через 1 минуту
Цитата Сообщение от Fedor82 Посмотреть сообщение
"'+CurrDir+'Archive\'+ExtractFileDir(filename)+'.rar"
Архиватор выдает ошибку в этом месте

Добавлено через 1 минуту
Как я понимаю нужно из пути извлеч название папки, но вот как?

Добавлено через 14 минут
Вопрос снят, всем спасибо!

Вернуться к обсуждению:
Архивация папки ч/з WinRar
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2012, 07:52
Готовые ответы и решения:

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

Архивация группы файлов путем WinRar
Доброго времени суток. Есть макрос, который работает, но почему-то не делает архив, бьюсь уже...

Архивация указанного файла в одноимённый архив с использованием WinRar
Здравствуйте! Помогите, пожалуйста. Необходимо создать bat файл, выполняющий архивирование...

Архивация папки с подпапками
Друзья, есть следующая структура /tmp/ - - - - Path1/ - - - - - - - - 1.txt - - - - - - - -...

Архивация папки с файлами, созданной сегодня
Доброго времени суток! Написал батник для резерного копирования, создает папку с именем текущей...

1
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru