AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein FileExists/FileDate - Auslesen über Netzwerk langsam
Thema durchsuchen
Ansicht
Themen-Optionen

FileExists/FileDate - Auslesen über Netzwerk langsam

Ein Thema von dGeek · begonnen am 10. Sep 2016 · letzter Beitrag vom 12. Sep 2016
Antwort Antwort
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#1

AW: FileExists/FileDate - Auslesen über Netzwerk langsam

  Alt 10. Sep 2016, 20:38
Die Geschwindigkeit des Netzwerks spielt hier eine stark untergeordnete Rolle. Wichtig ist die Latenz, und die ist nunmal in einem Netzwerk um Faktoren größer als bei einer lokal verbauten Platte. Und wenn es dann noch ein Plasterouter ist, sieht die Welt eh wieder anders aus (lies: Latenz noch größer), denn das sind nunmal keine NAS oder ähnliche auf LAN und SMB optimierte Geräte.

Grüße
Dalai
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#2

AW: FileExists/FileDate - Auslesen über Netzwerk langsam

  Alt 10. Sep 2016, 21:42
Nur wie machen das dann Programme wie FreeFileSync.
Mit dem Programm kann ich 10000 Dateien von meiner im PC befindlichen Festplatte mit 10000 Dateien von der Festplatte im Netzwerk in etwa 10 Sekunden vergleichen.
Das Programm vergleicht auch Datum oder Inhalt. Genau wie ich. Nur ich bin irgendwie zu blöd

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

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

AW: FileExists/FileDate - Auslesen über Netzwerk langsam

  Alt 10. Sep 2016, 21:56
Zu FreeFileSync gibt es auch den Quelltext, schaue da doch mal rein, wie die das machen. Wenn ich das richtig weiß und auch richtig beobachtet habe gehen die bei FreeFileSync über mehrere Threads die parallel laufen.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#4

AW: FileExists/FileDate - Auslesen über Netzwerk langsam

  Alt 10. Sep 2016, 22:06
Mh ja ok. Ich arbeite die 10000 Dateien (eine StringListe) in nur in einem Thread ab.

Hier wäre jetzt die Parallel Library von XE7 schön denke ich.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#5

AW: FileExists/FileDate - Auslesen über Netzwerk langsam

  Alt 11. Sep 2016, 00:00
Keinem ist das fehlende FindClose aufgefallen?
10.000 offene Such-Handlesmachen sich bestimmt gut.

Nja, wenn es langsam ist, dann würde ich wenigstens die Dateiliste sortieren und Dateien im gleichen Verziechnis auch mit dem gleichen FindFirst+FindNext suchen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#6

AW: FileExists/FileDate - Auslesen über Netzwerk langsam

  Alt 11. Sep 2016, 00:16
Zitat:
Nja, wenn es langsam ist, dann würde ich wenigstens die Dateiliste sortieren und Dateien im gleichen Verziechnis auch mit dem gleichen FindFirst+FindNext suchen.
Nicht das Suchen der Dateien ist das Problem. Dafür habe ich eine andere Funktion - von Luckie.

Das Problem ist eher, dass der Datums-Vergleich von 10.000 Dateien über das Netzwerk komischerweise solange dauert.

Zu den Handles: ich benutze mittlerweile folgende Anpassung:
Delphi-Quellcode:
function FileTimeToDateTime(FileTime: TFileTime): TDateTime;
var
 ModifiedTime: TFileTime;
 SystemTime: TSystemTime;
begin
 Result := 0;
 if (FileTime.dwLowDateTime = 0) and (FileTime.dwHighDateTime = 0) then
  Exit;
 try
  FileTimeToLocalFileTime(FileTime, ModifiedTime);
  FileTimeToSystemTime(ModifiedTime, SystemTime);
  Result := SystemTimeToDateTime(SystemTime);
 except
  Result := Now; // Something to return in case of error
 end;
end;

function getFileLastModified(const aFileName: string): TDateTime;
begin
 Result := FileTimeToDateTime(JclFileUtils.GetFileLastWrite(aFileName));
end;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: FileExists/FileDate - Auslesen über Netzwerk langsam

  Alt 11. Sep 2016, 00:40
Es wird nie eine Exception auftreten. Guck doch mal in der Doku zu den Funktionen, die du nutzt. API Funktionen werfen keine Exceptions, sondern habe Rückgabewerte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz