AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

JPG mit der letzten Änderung

Ein Thema von EDatabaseError · begonnen am 28. Nov 2007 · letzter Beitrag vom 28. Nov 2007
Antwort Antwort
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#1

JPG mit der letzten Änderung

  Alt 28. Nov 2007, 20:03
Delphi-Quellcode:
function FindLatestModifiedJPG(sPath: string): string;
var Data: TWin32FindData;
    LastModified: TDateTime;
    sTime: TSystemTime;
    FindHandle: Cardinal;
begin
  LastModified := 0;
  Result := '';
  sPath := IncludeTrailingPathDelimiter(sPath);
  FindHandle := FindFirstFile(PChar(sPath + '*.jpg'),Data);
  if FindHandle <> INVALID_HANDLE_VALUE then
    begin
      repeat
        if ((Data.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0) then
          begin
            FileTimeToSystemTime(Data.ftLastWriteTime,sTime);
            if (SystemTimeToDateTime(sTime) > LastModified) then
              begin
                LastModified := SystemTimeToDateTime(sTime);
                Result := Data.cFileName;
              end;
          end;
      until not FindNextFile(FindHandle,Data);
      Windows.FindClose(FindHandle);
    end;
end;
Moin,

ich habe hier ein kleines Problem mit mjpgs. Ich bekomme alle 2 Sekunden ein JPG mit zufälligen Namen. Mit dem obrigen Code ermittle ich die neueste (aktuelle) Bilddatei. Das Problem ab 500 Bildern wird der Code sehr sehr langsam. Kann man den Prozess beschläunigen?

Mfg
Tobi
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: JPG mit der letzten Änderung

  Alt 28. Nov 2007, 20:13
Falls es ein NTFS-Dateisystem ist so lass dir doch vom Betriebssystem mitteilen welche Datei geändert/neu hinzugekommen ist indem du einen "Directory-Watcher" implementierst. Mir fällt leider gerade nicht das Schlagwort ein nachdem gesucht muss
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#3

Re: JPG mit der letzten Änderung

  Alt 28. Nov 2007, 20:18
Ich hab auch nur das gefunden http://www.codeproject.com/vb/net/DirectoryWatcher.asp

Ich denke aber das soetwas mein Problem löst.
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: JPG mit der letzten Änderung

  Alt 28. Nov 2007, 20:19
Hab ich auch schon bemerkt, das liegt an FindFirstFile/FindNextFile und die brauchen halt bei vielen Dateien ihre Zeit.

Also wenn du auf diese WinAPIs baust, dann geht es nicht viel schneller,
aber eine andere Lösung ist mir noch nicht eingefallen.

Direkte Dateisystemzugriffe werden dirwohl nicht gefallen.
Die FAT/Verzeichnisstruktur oder die MasterFileTable(NTFS) selbst entschlüsseln ist nicht so einfach, wobei der Zugriff auf die MFT mit am Schnellsten sein könnte.


also Bernhard Geyer's Tipp mit ReadDirectoryChangesW währe wohl für dich am Optimalsten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: JPG mit der letzten Änderung

  Alt 28. Nov 2007, 20:30
Hallo,
Die Funktion ReadDirectoryChangesWReadDirectoryChangesW hat bei mir super Dienste geleistet. Damit funktioniert das perfekt.
[Edit]Man sollte alle Beiträge ganz durchlesen
Benjamin
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#6

Re: JPG mit der letzten Änderung

  Alt 28. Nov 2007, 20:58
Benjamin der CL Link führt ins leere könntest du mir bitte ein Code-Snippet posten
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: JPG mit der letzten Änderung

  Alt 28. Nov 2007, 22:26
http://msdn2.microsoft.com/en-us/library/aa365465.aspx
Markus Kinzler
  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 05:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz