Autor Beitrag
Timmes
Hält's aus hier
Beiträge: 6

Win XP Prof
Delphi 6 Enterprise , delphi 3
BeitragVerfasst: Mo 03.04.06 10:26 
Moin,
wenn ich mit copyfileex etwas kopiere, was schon existiert, ich es aber ohne Rückfrage überschreiben will, was muss ich da einstellen?
Ich will das man nichtmehr gefragt wird, sondern das er einfach überschreibt...
so die Funktion:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
function Tdatensicherung.CopyFileEx(const ASource, ADest: String;
 ARenameCheck: boolean = false): boolean;
var
  sh: TSHFileOpStruct;
begin
  sh.Wnd := Application.Handle;
  sh.wFunc := FO_COPY;

  // String muss mit #0#0 Terminiert werden, um das Listenende zu setzen
  sh.pFrom := PChar(ASource + #0);
  sh.pTo := PChar(ADest + #0);
  sh.fFlags := fof_Silent or fof_MultiDestFiles;
  if ARenameCheck then
    sh.fFlags := sh.fFlags or fof_RenameOnCollision;
  Result:=ShFileOperation(sh)=0;
end;


Wär net wenn ihr mir helfen könntet..
MFG
Timmes
whitef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 202
Erhaltene Danke: 1

Windows X
Delphi XE X
BeitragVerfasst: Mo 13.10.08 22:24 
soll ja nichts unbeantwortet bleiben ^^

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
function Tdatensicherung.CopyFileEx(const ASource, ADest: String;
 ARenameCheck: boolean = <span style="color: red">true</span>): boolean;
var
  sh: TSHFileOpStruct;
begin
  sh.Wnd := Application.Handle;
  sh.wFunc := FO_COPY;

  // String muss mit #0#0 Terminiert werden, um das Listenende zu setzen
  sh.pFrom := PChar(ASource + #0);
  sh.pTo := PChar(ADest + #0);
  sh.fFlags := fof_Silent or fof_MultiDestFiles;
  if ARenameCheck then
    sh.fFlags := sh.fFlags or <span style="color: red">FOF_NOCONFIRMATION</span>;
  Result:=ShFileOperation(sh)=0;
end;


und dann zum aufruf, damit auch alles klappt:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button4Click(Sender: TObject);
begin
CopyFileEx('C:\22\*.*','C:\33');
end;


order damit auch unterordner kopiert werden können:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button4Click(Sender: TObject);
begin
CopyFileEx('C:\22\','C:\33');
end;



mfg