procedure TMain_Form.bitbtn1Click(Sender: TObject);
var
sDir, sFolderError, sFromDir, sSearchDir, sToDir :
String;
bl : Boolean;
begin
// Copy Error Folder [If not Exists, Create Error Folder, Copy Files]
sDir := '
C:\LOG\Daten_Laden\Error';
bl := fnDirExists(sDir);
If bl = False
Then
Begin
CreateDir(sDir);
// Ordner anlegen
End
Else
Begin
prCheck_ClearFiles(sDir);
//Ordner ist bereits vorhanden, Files aus Ordner löschen!
End;
sFromDir := '
J:\Update\Prog1\Error\';
sSearchDir := '
J:\Update\Prog1\Error\*.txt';
sToDir := '
C:\LOG\Daten_Laden\Error\';
prCopyFiles(sFromDir, sSearchDir, sToDir);
ProgBar.Position := 60;
// Copy File Folder [If not Exists, Create File Folder, Copy Files]
sDir := '
C:\LOG\Daten_Laden\Files';
bl := fnDirExists(sDir);
If bl = False
Then
Begin
CreateDir(sDir);
End
Else
Begin
prCheck_ClearFiles(sDir);
End;
sFromDir := '
J:\Update\Prog1\Files\';
sSearchDir := '
J:\Update\Prog1\Files\*.txt';
sToDir := '
C:\LOG\Daten_Laden\Files\';
prCopyFiles(sFromDir, sSearchDir, sToDir);
ShowMessage('
Update was Successful');
end;
//******************************************************************************
// Examine Folder Exists
//******************************************************************************
function TMain_Form.fnDirExists(sDir :
String) : Boolean;
begin
fnDirExists := DirectoryExists(sDir);
// Prüft ob Ordner bereits angelegt wurde
end;
//******************************************************************************
// Clear Files From Folder
//******************************************************************************
procedure TMain_Form.prCheck_ClearFiles(sDir :
String);
var
iAtr,
iRC : Integer;
sPath, sFile :
String;
recDat : TSearchRec;
bl : Boolean;
begin
sPath := sDir + '
\*.txt';
iAtr := faAnyFile;
iRC := FindFirst(sPath, iAtr, recDat);
// Erste Datei suchen
If iRC = 0
Then // Datei gefunden
Begin
sFile := sDir + '
\' + recDat.
Name;
bl := DeleteFile(sFile);
// Datei löschen
If bl = False
Then
Begin
ShowMessage('
Could Not Delete: ' + sFile);
End;
End;
While iRC = 0
Do
Begin
iRC := FindNext(recDat);
// Nach weiteren Dateien suchen
If iRC = 0
Then
Begin
sFile := sDir + '
\' + recDat.
Name;
bl := DeleteFile(sFile);
// Weitere Dateien vorhanden, Dateien löschen
If bl = False
Then
Begin
ShowMessage('
Could Not Delete: ' + sFile);
End;
End;
End;
FindClose(recDat);
// Ende der Suche
end;
//******************************************************************************
// Copy Files From Dir --> To Dir
//******************************************************************************
procedure TMain_Form.prCopyFiles(sFromDir, sSearchDir, sToDir :
String);
var
iAtr,
iRC : Integer;
sPath :
String;
recDat : TSearchRec;
strFrom, strTo : TStream;
begin
iAtr := faAnyFile;
sPath := sSearchDir;
iRC := FindFirst(sPath, iAtr, recDat);
// Erste Datei im 'Von' Ordner suchen
If iRC = 0
Then // Datei kopieren
Begin
strFrom := TFileStream.Create(sFromDir + recDat.
Name, fmOpenRead);
Try
strTo := TFileStream.Create(sToDir + recDat.
Name, fmCreate);
Try
strTo.CopyFrom(strFrom, strFrom.Size);
Finally
strTo.Free;
End;
Finally
strFrom.Free;
End;
End;
While iRC = 0
Do
Begin
iRC := FindNext(recDat);
// Nächste Datei suchen
If iRC = 0
Then // Datei kopieren
Begin
strFrom := TFileStream.Create(sFromDir + recDat.
Name, fmOpenRead);
Try
strTo := TFileStream.Create(sToDir + recDat.
Name, fmCreate);
Try
strTo.CopyFrom(strFrom, strFrom.Size);
Finally
strTo.Free;
End;
Finally
strFrom.Free;
End;
End;
End;
FindClose(recDat);
// Ende der suche / des kopierens
end;