![]() |
JPG mit der letzten Änderung
Delphi-Quellcode:
Moin,
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; 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 |
Re: JPG mit der letzten Änderung
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 :-(
|
Re: JPG mit der letzten Änderung
Ich hab auch nur das gefunden
![]() Ich denke aber das soetwas mein Problem löst. |
Re: JPG mit der letzten Änderung
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, :cry: 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. |
Re: JPG mit der letzten Änderung
Hallo,
Die Funktion ![]() [Edit]Man sollte alle Beiträge ganz durchlesen :wall: |
Re: JPG mit der letzten Änderung
Benjamin der CL Link führt ins leere ;-) könntest du mir bitte ein Code-Snippet posten ;-)
|
Re: JPG mit der letzten Änderung
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:10 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