Пока накидал только формы.
Незнаю как именно реализовать, можно ли обойтись только этой программой или придется обращаться к штатным средствам ОС? (пишу под win server 2008, 2003)
Чтобы создать задание, пользователю предварительно предлагается выбрать требуемое действие: «копировать» или «переносить». При копировании создается точная копия исходных файлов, при выборе действия «переносить» так же создается точная копия исходных файлов, но после завершения копирования исходные файлы стираются из памяти. Дальнейшие параметры задания будут доступны, только при выборе требуемого действия («копировать» или «переносить»). Это сделано для того, чтобы пользователь по неосторожности не создал задания без этих параметров («копировать» или «переносить»), что было бы бессмысленно.
После выбора требуемого действия, пользователю открываются дальнейшие параметры:
• Путь до исходных файлов
• Путь до конечной директории
• Дата выполнения задания
• Время выполнения задания, с точностью до минут
После указания всех параметров, пользователь нажимает на кнопку «Создать задание».
У меня идея такая: при содании задания, программа создает батник или ини-файл, в котором прописаны все условия, и в определенный момент запускает этот батник или сама копирует, использую условия ини-файла.
Что думаете? Может кто уже сталкивался с таким?
Добавлено спустя 2 часа 39 минут 52 секунды:
Копировать файлы программу я научил, с помощью этой функции:
- Код: Выделить всё
function CopyDirectory( StrFrom, StrTo : string) : Boolean;
var
F : TShFileOpStruct;
begin
F.wFunc:=FO_COPY;
F.pFrom:=PChar(StrFrom + #0);
F.pTo:=PChar(StrTo+#0);
F.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
if ShFileOperation(F) = 0 then
result:=False
else
result:=True;
end;
Теперь при нажатии кнопки создать задание, вот что:
- Код: Выделить всё
procedure TForm2.Button1Click(Sender: TObject);
begin
CopyDirectory(directoryedit1.directory, directoryedit2.directory);
end;
Теперь хотелось бы, чтобы в зависимости от того, какой radiobutton выбрал пользователь, программа удаляла исходные файлы или нет, представляю это примерно так:
- Код: Выделить всё
procedure TForm2.Button1Click(Sender: TObject);
begin
if radioRadioButton1.enabled: = true, then
CopyDirectory(directoryedit1.directory, directoryedit2.directory);
if radioRadioButton2.enabled: = true, then
CopyDirectory(directoryedit1.directory, directoryedit2.directory); + ...(тут надо что то добавить для чистки исходящий директории)
end;
Кто знает как это можно реализовать?
Еще бы хотелось научить программу копировать не просто папки, но и файлы отдельно. Еще при копировании нет визульного отображения процесса.
Добавлено спустя 3 часа 46 минут 59 секунд:
Научил программу удалять после копирования каталога, при выборе параметра "перенести":
- Код: Выделить всё
procedure TForm2.Button1Click(Sender: TObject);
begin
CopyDirectory(directoryedit1.directory, directoryedit2.directory);
if RadioButton2.checked = true then
DeleteDirectory(directoryedit1.directory, true);
end;
Добавлено спустя 41 минуту 5 секунд:
В общем, что осталось сделать:
1. Научить программу выполнять задания в указанный срок
2. Научить программу показывать процесс выполнения задания на первой форме
3. научить программу копировать не только директории целиком, но и файлы по отдельности
ну и самому научиться все это делать:)
Пока не знаю как это сделать...
