Hallo!
Ich habe ein Programm geschrieben das bestimmte Dateien... auch aus den Unterverzeichnissen in ein anderes Verzeichnis kopieren soll.
Nun habe ich das Problem, das, wenn ich mit den Ordner leere.. und das nochmal alle dateien kopieren will... er eine xxx - Kopie macht..
Hier mein Programmcode:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
aSHFOS: TSHFileOpStruct;
szFrom:
array [0 .. 128]
of Char;
szTo:
array [0 .. 128]
of Char;
quelle:
string;
ziel:
string;
ordnern:
string;
pfade: TStringList;
a: Integer;
b: Integer;
begin
(*
If edit_pnumber.Text = '' then
begin
ShowMessage('Bitte Projektnummer eingeben');
exit;
end else
begin
ordnern := edit_pnumber.Text;
ShowMessage(ordnern);
exit;
end;
*)
ordnern := edit_pnumber.Text;
if DirectoryExists
('
C:\Users\Programmierung\Desktop\Neuer Ordner\Bla\' + ordnern)
= False
then
begin
ShowMessage('
Projektordner exisitiert nicht!');
Exit;
end;
FindFiles('
C:\Users\Programmierung\Desktop\Neuer Ordner\Bla\' +
ordnern, '
*.mpr', True, ListBox1.Items);
// ShowMessage(pfade[2]);
b := ListBox1.Items.Count;
ShowMessage(InttoStr(Sizeof(aSHFOS)));
for a := 0
to b - 1
do
begin
FillChar(aSHFOS, Sizeof(aSHFOS), #0);
FillChar(szFrom, Sizeof(szFrom), #0);
FillChar(szTo, Sizeof(szTo), #0);
StrPCopy(szFrom, ListBox1.Items[a]);
// StrPCopy(szFrom, 'C:\alt\*.txt');
StrPCopy(szTo, '
C:\Users\Programmierung\Desktop\Neuer Ordner\Fertig');
with aSHFOS
do
begin
Wnd :=
Handle;
// wFunc := FO_MOVE;
wFunc := FO_COPY;
pFrom := @szFrom;
pTo := @szTo;
fFlags := FOF_NOCONFIRMATION
or FOF_RENAMEONCOLLISION;
hNameMappings :=
nil;
lpszProgressTitle :=
nil;
end;
ShFileOperation(aSHFOS);
end;
end;
Wo habe ich da einen fehler.. bzw. was muss ich da leeren damit ich keine xxx - Kopie der datei erhalte???
Ps. Wenn ich das Programm neustarte dann funktioniert es so wie ich es will.
!!!Hab mein Problem schon gefunden!!! Sry für die unüberlegte handlung
mfg