- Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, FileUtil, LResources,
Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
procedure CopyFolder(src, dest: string);
var
sts: integer;
SR: TSearchRec;
begin
sts := FindFirst(src + '*.*', faAnyFile, SR);
while sts = 0 do
begin
if (SR.Name <> '.') and (SR.Name <> '..') then
begin
Application.ProcessMessages;
if pos('.', SR.Name) = 0 then
begin
{I-}
MkDir(dest + SR.Name);
{I+}
CopyFolder(src + SR.Name + '\', dest + SR.Name + '\');
end
else
CopyFile(PChar(src + SR.Name), PChar(dest + SR.Name), True);
end;
sts := FindNext(SR);
end;
FindClose(SR);
end;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
mkdir(edit3.Text+edit2.Text);
copyfolder(edit1.Text+'\'+edit2.Text+'\', edit2.Text + '\');
end;
initialization
{$I unit1.lrs}
end.
При тестировании программы выскакивается вот такое сообщение:
Project project1.exe raised exception class 'RunError(123)'
Этот код пашет в Дельфи 6 и 8... Отлично работает при копировании каталогов...
Может, не подходит этот код или я где-то допустил ошибку?