camope3
05-07-2011, 23:29
Извините за столь банальный вопрос но нужно осуществить копирования каталогов вместе с содержимым средствами delphi.
Нашел Вот такую функцию:
Function FullDirectoryCopy(SourceDir,TargetDir: String; StopIfNotAllCopied,
OverWriteFiles: Boolean): Boolean;
Var
SR: TSearchRec;
I: Integer;
Begin
Result:=False;
SourceDir:= IncludeTrailingBackslash(SourceDir);
TargetDir:= IncludeTrailingBackslash(TargetDir);
If Not DirectoryExists(SourceDir) Then
Exit;
If Not ForceDirectories(TargetDir) Then
Exit;
I:=FindFirst(SourceDir + '*', FaAnyFile, SR);
Try
While I = 0 Do
Begin
If (SR.Name <> '') And (SR.Name <> '.') And (SR.Name <> '..') Then
Begin
If SR.Attr = FaDirectory Then
Result:= FullDirectoryCopy(SourceDir + SR.Name, TargetDir + SR.NAME,
StopIfNotAllCopied, OverWriteFiles)
Else
If Not (Not OverWriteFiles And FileExists(TargetDir + SR.Name)) Then
Result:= CopyFile(Pchar(SourceDir + SR.Name), Pchar(TargetDir + SR.Name),False)
Else
Result:=True;
If Not Result And StopIfNotAllCopied Then
Exit;
End;
I:=FindNext(SR);
End;
Finally
SysUtils.FindClose(SR);
End;
End;
Создана форма. На форму помещена кнопка. Дописан код:
procedure TForm1.Button1Click(Sender: TObject);
begin
//Копируем все файлы из директории с:\1 в директорию d:\1
if FullDirectoryCopy('c:\1','d:\1') then
ShowMessage ('Удачно скопировано') else
ShowMessage ('Не удалось скопировать'+IntToStr(GetLastError));
end;
При компиляции выдает ОШИБКУ (http://i030.radikal.ru/1107/73/da0baae539ac.jpg)
Помогите пожалуйста разобраться где "собака зарыта" пересмотрел все не один раз вроде как должно компилироваться.
Заранее благодарен
Нашел Вот такую функцию:
Function FullDirectoryCopy(SourceDir,TargetDir: String; StopIfNotAllCopied,
OverWriteFiles: Boolean): Boolean;
Var
SR: TSearchRec;
I: Integer;
Begin
Result:=False;
SourceDir:= IncludeTrailingBackslash(SourceDir);
TargetDir:= IncludeTrailingBackslash(TargetDir);
If Not DirectoryExists(SourceDir) Then
Exit;
If Not ForceDirectories(TargetDir) Then
Exit;
I:=FindFirst(SourceDir + '*', FaAnyFile, SR);
Try
While I = 0 Do
Begin
If (SR.Name <> '') And (SR.Name <> '.') And (SR.Name <> '..') Then
Begin
If SR.Attr = FaDirectory Then
Result:= FullDirectoryCopy(SourceDir + SR.Name, TargetDir + SR.NAME,
StopIfNotAllCopied, OverWriteFiles)
Else
If Not (Not OverWriteFiles And FileExists(TargetDir + SR.Name)) Then
Result:= CopyFile(Pchar(SourceDir + SR.Name), Pchar(TargetDir + SR.Name),False)
Else
Result:=True;
If Not Result And StopIfNotAllCopied Then
Exit;
End;
I:=FindNext(SR);
End;
Finally
SysUtils.FindClose(SR);
End;
End;
Создана форма. На форму помещена кнопка. Дописан код:
procedure TForm1.Button1Click(Sender: TObject);
begin
//Копируем все файлы из директории с:\1 в директорию d:\1
if FullDirectoryCopy('c:\1','d:\1') then
ShowMessage ('Удачно скопировано') else
ShowMessage ('Не удалось скопировать'+IntToStr(GetLastError));
end;
При компиляции выдает ОШИБКУ (http://i030.radikal.ru/1107/73/da0baae539ac.jpg)
Помогите пожалуйста разобраться где "собака зарыта" пересмотрел все не один раз вроде как должно компилироваться.
Заранее благодарен