Einzelnen Beitrag anzeigen

dGeek
(Gast)

n/a Beiträge
 
#3

AW: FileExists/FileDate - Auslesen ber Netzwerk langsam

  Alt 10. Sep 2016, 19:43
Die Dateiliste existiert bereits.

Erklärung:

Verzeichnis Quelle hat:
- Datei1
- Datei2
- Datei3

Verzeichnis Ziel (Festplatte im Netzwerk):
- Datei1


Datei2 und - Datei3 fehlen im Netzwerk also.

Jetzt wird durch die Quellliste iteriert:

von 0 bis Listenende-1 tue
- Wenn Quelle+DateiN neuer als Ziel+DateiN dann .... (IsFileANewerFileB)

Die Vergleichsfunktion:
Delphi-Quellcode:
function IsFileANewerFileB(aFileA, aFileB: string): Boolean;
var
 bRes: Boolean;
begin
 if (not FileExists(aFileB)) or (not FileExists(aFileA)) then
  bRes := True
 else
  bRes := getFileLastModified(aFileA) > functions.getFileLastModified(aFileB);

 Result := bRes;
end;

function getFileLastModified(const aFileName: string): TDateTime;
var
 SR: TSearchRec;
begin
 Result := 0;

 FindFirst(aFileName, faAnyFile, SR);
 Result := SR.TimeStamp;
end;
Und ich bin mir nicht sicher, was hier so extremst abbremst. Ich denke aber, es ist FileExists.
Denn wenn ich FileExists() weglasse und getFileLastModified auc, dann ist es superschnell.
Ich schätze mal, dass FindFirst intern auch irgendwie FileExists aufruft.

Geändert von dGeek (10. Sep 2016 um 19:45 Uhr)
  Mit Zitat antworten Zitat