Entwickler-Ecke
Windows API - Nachricht, wenn Datei gelöscht
scrooge - Do 25.09.03 13:57
Titel: Nachricht, wenn Datei gelöscht
Hi,
würde gerne mal wissen, wie man rauskriegt, ob eine Datei gelöscht wurde. Sollte eigentlich ohne vorige Überprüfung geschehen. Gibts da vielleicht ne Windows-Message, die man abfangen kann ??
Terra23 - Do 25.09.03 15:25
... löscht du die Datei selber mit deinem Programm?
scrooge - Do 25.09.03 19:17
Nein !
Licki - Do 25.09.03 21:18
Keine Ahnung, aber du kannst ja einfach ne Abfrage selber reinmachen, also abfragen, ob es die Datei noch gibt, wo du löschen willst. Einfach DeleteFile und FileExists kombinieren, geht doch easy und ist relativ sicher. Lieber nochmal abfragen lassen, als sich von Windoof ne Bestätigung zu hohlen. ;)
Delete - Fr 26.09.03 00:23
Ein eleganterer Ansatz wäre den Ordner zu überwachen und bei einer Änderung die Existenz abzufragen.
ORDNER ?BERWACHEN und auf meiner HP in der Ablage/demos
smiegel - Fr 26.09.03 07:30
Hallo,
wenn Du D7 Prof. und höher hast, gibt es auf dem Reiter "Beispiele" ein Objekt namens "ShellChangeNotifier".
Wenn nicht, musst Du Dir einen Thread schreiben und die Win-Message FILE_NOTIFY_CHANGE_FILE_NAME belauschen.
Delete - Fr 26.09.03 08:20
Auf dieNachricht kann er lange warten oder lauschen, wie du so sagst, denn das ist mit Sicherheit keine Nachricht, die Windows verschickt. Das sieht mir eher nach einer Struktur aus. Allerdings kennt sie mein PSDK nicht. Was dem noch am nächsten kommt ist das:
| PSDK hat folgendes geschrieben: |
The FILE_NOTIFY_INFORMATION structure describes the changes found by the ReadDirectoryChangesW function.
|
lambruco - Fr 26.09.03 10:07
Mein Ansatz wäre:
Alle Dateinamen eines Ordners speichern, mit FindFirstChangeNotifier und FindNextChangeNotifier den Ordner auf Veränderungen überwachen, bei Veränderungen eine Vergleichsliste erstellen und schauen, welche Datei fehlt.
Vielleicht nicht richtig elegant, aber funktioniert problemlos.
smiegel - Fr 26.09.03 10:31
@luckie
warum soll das keine Nachricht sein, die Windows verschickt? Die Konstante ist in Windows.pas deklariert. In Verbindung mit FindFirstChangeNotifaction und FindNextChangeNotification erhält man sehr wohl FILE_NOTIFY_CHANGE_FILE_NAME.
lambruco - Fr 26.09.03 10:56
Kommt darauf an, was scrooge vorhat.
Will er nur wissen, ob etwas gelöscht wurde, oder will er auch wissen, was gelöscht wurde?
Delete - Fr 26.09.03 11:10
| smiegel hat folgendes geschrieben: |
@luckie
warum soll das keine Nachricht sein, die Windows verschickt? Die Konstante ist in Windows.pas deklariert. In Verbindung mit FindFirstChangeNotifaction und FindNextChangeNotification erhält man sehr wohl FILE_NOTIFY_CHANGE_FILE_NAME. |
Nein, es ist definitiv
keine Nachricht, sondern eien Konstante. Windows Nachrichten fange alle mit WM_ an und lassen sich über die Fensterprozedur abfangen. Versuch das mal mit FILE_NOTIFY_CHANGE_FILE_NAME. :roll:
scrooge - Sa 27.09.03 16:27
Hi,
die Idee mit dem Liste der Dteien im Ordner erstellen > Prüfen, ob Datei noch vorhanden ist zwar so ganz gut, aber die Überprüfung müsste ich dann schon selbst machen und mein Ziel ist es eigentlich möglichst gleich benchrichtigt zu werden, wenns die Datei nicht mehr gibt. Noch einfacher wärs natürlich, wenn alles und jeder weiterhin Zugriff auf die Datei hat, aber sie keiner mehr löschen kann oder darf. Kann man das vielleicht nicht irgendwie mit Filestream oder so machen ???
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!