none
Auf ruf eines Handles bevor eine Datei vom Filesystem gelscht wird RRS feed

  • Frage

  • Hallo,

    Ich möchte in das löschen einer Datei eingreifen können. Aus diesem Grund brauchen ich eine Möglichkeit eines Funktionsaufrufes bevor eine Datei vom Filesystem gelöscht wird. Mit der FileSystemWatcher Class wird zwar gemeldet, dass eine Datei gelöscht wurde, aber es ist nicht möglich vor dem Löschen der Datei einzugreifen. 

    Ich hoffe es hat jemand einen Ansatz, wie ich diese Anforderung lösen kann.



    Montag, 29. Juni 2020 16:55

Antworten

  • Daten mit 2 Wochen Verzögerung gelöscht werden. Ich sehe sonst keine andere Möglichkeit das zu realisieren. 
    Doch, gibt es, nennt sich Backup mit einer Aufbewahrungszeit von 2 Wochen; wir haben so was in unserem Unternehmen im Einsatz :-)

    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Dienstag, 30. Juni 2020 05:29
  • Hi,

    dein Kunde sollte, wie von Olaf auch schon vorgeschlagen, Backups einsetzen.

    Wenn das unbedingt individuell gewünscht ist, kann man sowas auch durch eigene Software bauen. Ob das aber nun zielführend ist und auch 100% richtig arbeitet, muss man schauen.

    Ich würde einen FileSystemWatcher auf die betreffenden Verzeichnisse legen und bei neuen und geänderten Dateien eine automatische Kopie erzeugen. Also eigentlich die Dateisystemstruktur über den FileSystemWatcher spiegeln.

    Bei Create und Change wird der ganz normale Vorgang durchgeführt, Datei (und ggfs. Ordner) werden angelegt, verschoben, geändert, ...

    Bei Delete (dass Du ja nicht im Vorfeld abfangen kannst) würde ich für jede gelöschte Datei bzw. jeden gelöschte Ordner erst mmal einen Datensatz in einer Datenbank mit dem Löschstatus und dem Löschdatum der Datei hinterlegen. Über deinen Dienst kannst Du dann prüfen, ob es Dateien/Ordner gibt, deren endgültiges Löschdatum erreicht ist und falls ja, kannst Du diese dann aus deiner Dateisystemspiegelung entfernen.

    Aufpassen musst Du natürlich auch dann, wenn jemand Dateien/Ordner löscht, nochmal welche mit den gleichen Namen/Pfaden anlegt, löscht, anlegt, usw.

    ---

    Das verbraucht natürlich jede Menge Speicherplatz (mind. genauso viel wie auf dem Originalordner, den Du überwachst) aber damit wäre das Gewünschte machbar.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Dienstag, 30. Juni 2020 07:17
    Moderator

Alle Antworten

  • Hi,

    Geht es immer noch um dieselbe Frage wie vor ca. drei Wochen?

      Funktionsaufruf bevor eine Datei gelöscht wird


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Montag, 29. Juni 2020 17:11
    Moderator
  • Danke für das Nachfragen, Leider ja!


    Montag, 29. Juni 2020 18:52
  • Hallo,

    das verhalten ist nicht gewünscht. Es gab eine Zeitlang Schadsoftware die sich selbst beim löschen woandershin kopiert hat und wieder selbst gestartet hat. Dies ist jetzt nicht mehr so einfach möglich und das ist auch gut so.



    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings

    Montag, 29. Juni 2020 19:53
  • Der Grund: Der Kunde hat Freigaben am Server und möchte das auf freigegebenen Verzeichnissen Daten mit 2 Wochen Verzögerung gelöscht werden. Ich sehe sonst keine andere Möglichkeit das zu realisieren. Es gibt zwar ein Programm (Enable Recycle Bin) das das macht, jedoch funktioniert das nicht richtig gut. Also muss das prinzioiell möglich sein. 
    Dienstag, 30. Juni 2020 03:00
  • Daten mit 2 Wochen Verzögerung gelöscht werden. Ich sehe sonst keine andere Möglichkeit das zu realisieren. 
    Doch, gibt es, nennt sich Backup mit einer Aufbewahrungszeit von 2 Wochen; wir haben so was in unserem Unternehmen im Einsatz :-)

    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Dienstag, 30. Juni 2020 05:29
  • Hi,

    dein Kunde sollte, wie von Olaf auch schon vorgeschlagen, Backups einsetzen.

    Wenn das unbedingt individuell gewünscht ist, kann man sowas auch durch eigene Software bauen. Ob das aber nun zielführend ist und auch 100% richtig arbeitet, muss man schauen.

    Ich würde einen FileSystemWatcher auf die betreffenden Verzeichnisse legen und bei neuen und geänderten Dateien eine automatische Kopie erzeugen. Also eigentlich die Dateisystemstruktur über den FileSystemWatcher spiegeln.

    Bei Create und Change wird der ganz normale Vorgang durchgeführt, Datei (und ggfs. Ordner) werden angelegt, verschoben, geändert, ...

    Bei Delete (dass Du ja nicht im Vorfeld abfangen kannst) würde ich für jede gelöschte Datei bzw. jeden gelöschte Ordner erst mmal einen Datensatz in einer Datenbank mit dem Löschstatus und dem Löschdatum der Datei hinterlegen. Über deinen Dienst kannst Du dann prüfen, ob es Dateien/Ordner gibt, deren endgültiges Löschdatum erreicht ist und falls ja, kannst Du diese dann aus deiner Dateisystemspiegelung entfernen.

    Aufpassen musst Du natürlich auch dann, wenn jemand Dateien/Ordner löscht, nochmal welche mit den gleichen Namen/Pfaden anlegt, löscht, anlegt, usw.

    ---

    Das verbraucht natürlich jede Menge Speicherplatz (mind. genauso viel wie auf dem Originalordner, den Du überwachst) aber damit wäre das Gewünschte machbar.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Dienstag, 30. Juni 2020 07:17
    Moderator
  • Es ist möglich nur halt nicht auf dieser Ebene. Du müsstest dich tiefer mit NTFS oder dem Dateiensystem geschäftigen das genutzt wird. Dateien verschwinden ja nicht einfach, sie werden nur aus den Tabellen entfernt. Am einfachsten wäre das auch wohl mit C/C++

    Wenn Du keine Kenntnisse mit der Programmierung in C++ hast, würde ich dir empfehlen  den Ansatz von Stefan zu folgen.

    Ich persönlich würde auch ein Backup bevorzugen. 


    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings




    Dienstag, 30. Juni 2020 13:59