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

Показать сообщение отдельно

Пользователь


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

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


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

Вот часть кода:
читать дальше »
Код: Выделить весь код
function MoveFile(const srcFile, destFile: PChar): Integer; external 'MoveFileA@kernel32.dll stdcall';
//////////////////////////////////////////////
  RedesignWizardForm;
MyTask:=TCheckBox.Create(WizardForm);
with MyTask do
begin
Parent:=WizardForm.SelectDirPage;
Caption:='Создать резервную копию';
Left:=ScaleX(0);
Top:=ScaleY(180);
Width:=ScaleX(400);
Height:=ScaleY(15);
TabOrder:=0;
Checked:=False;
//////////////////////////////////////////////
   
 if MyTask.Checked then begin
MyFiles:=['*']; // указать файлы или маски нужные для бакупа через запятую. при указании маски '*' бакупятся все файлы с вложенными папками
MyDir:=ExpandConstant('{app}'+'\FolderName\'); //папка откуда бакупить
BackDir:=ExpandConstant('{app}'+'\Backup\'); // папка куда бакупить
for i:=0 to GetArrayLength(MyFiles)-1 do
begin
if FindFirst(MyDir+MyFiles[i], FindFiles) then begin
repeat
if not DirExists(BackDir) then begin
CreateDir(BackDir);
end;
MoveFile(MyDir+FindFiles.Name, BackDir+FindFiles.Name);
until not FindNext(FindFiles);
FindClose(FindFiles);
end;
end;
end;


Его задача переместить все файлы и папки из одной папки №1 в папку №2.
Так вот если папка №2 уже существует и в ней есть файлы или даже пустые папки, то часть файлов он просто не перемещает, другие файлы перемещает частично... при этом никакой зависимости от присутствующих в папке №1 файлов нет.
Код брал из справки... можно ли его как-то усовершенствовать в этом вопросе? Можно ли не перемещать, а копировать файлы?

Отправлено: 09:04, 20-11-2013 | #1472