Jump to content

Leere Unterverzeichnisse in Timeshift werden nicht gelöscht


Recommended Posts

ebala

Mit der umgelagerten Timeshift-Funktion in Version 7.0.0 des DVB Viewers Pro habe ich das Problem, dass die Ordner im Timeshift-Verzeichnis nicht gelöscht werden. Gibt es da irgendeine Lösung, bzw. mache ich irgendetwas falsch?.

 

Zum besseren Verständnis hier mein Szenario.

Ich habe , auch nach dem Versionswechsel getrennte Verzeichnisse für die Aufnahmen und für Timeshift.

Die generelle Vorgabe, in den Optionen, für die Aufnahmen beinhaltet, dass jede in einem eigenen Unterverzeichnis abgelegt wird.

%name\%d_%m_%year_%D_%time_%station_%name

Da seit dem Update diese Einstellung auch bei Timeshift verwendet wird legt der Viewer auch hier die Timeshift-Datei in ein Unterverzeichnis.

Das Problem ist, dass er zwar beim Senderwechsel die Timeshift-Datei, nicht aber das Unterverzeichnis löscht. Dadurch bleibt bei jedem Senderwechsel ein leerer Ordner mit dem Titel der Sendung im Timeshift-Verzeichnis zurück, was zu sinnlosem Datenmüll führt. In früheren Versionen legte er die Timeshift-Datei ohne Unterverzeichnis ab, was ja ok wäre.

Danke vorab für die Hilfe.

Link to post
Griga
vor einer Stunde schrieb ebala:

Mit der umgelagerten Timeshift-Funktion in Version 7.0.0 des DVB Viewers Pro habe ich das Problem, dass die Ordner im Timeshift-Verzeichnis nicht gelöscht werden. Gibt es da irgendeine Lösung, bzw. mache ich irgendetwas falsch? (...) Die generelle Vorgabe, in den Optionen, für die Aufnahmen beinhaltet, dass jede in einem eigenen Unterverzeichnis abgelegt wird: %name\%d_%m_%year_%D_%time_%station_%name

 

Du machst nichts falsch. Nur etwas, das niemand bei der Umgestaltung der Timeshift-Funktion auf der Rechnung hatte, weil es sinnlos erscheint: Nämlich das Speichern jeder einzelnen Aufnahme in einem separaten Verzeichnis. Wieso machst du sowas? Anwender sind wirklich enorm erfinderisch darin, Dinge zu tun, auf die man als Entwickler nie kommen würde ;)

 

Dafür gibt es keine Lösung, und ich weiß im Moment auch nicht, wie man das sinnvoll regeln könnte. Der DVBViewer löscht grundsätzlich keine leeren bzw. leergewordenen Aufnahmeverzeichnisse, denn damit könnte er sich bei anderen Anwendern bzw. in anderen Szenarien höchst unbeliebt machen.

 

Link to post
ebala

Zu Deiner Frage wieso ich Unterverzeichnisse benutze: 1. Weil es die Option gibt. 😉

Nun die Erklärung.

Ich habe in den letzten 2 Jahren über 1000 Sendungen für ein wissenschaftliches Projekt aufgenommen. In das angelegte Verzeichnis zu jeder Sendung kommen daher noch andere Dateien die thematisch mit der Sendung in Verbindung stehen. Ich musste also das Verzeichnis nicht manuell hinzufügen und hatte dadurch schonmal eine Fehlerquelle und einen Arbeitsgang weniger.  Das Unterverzeichnis enthielt den reinen Sendungsnamen, der Aufnahmetitel der Datei dagegen noch zusätzlich Datum, Uhrzeit, Sender etc.

Vor allem bei Mehrteilern oder Serien ist das vorteilhaft, denn sie werden ohne weiteren Handgriff in den bereits bei der ersten Aufnahme erstellten Ordner abgelegt. So konnte ich die Daten schnell, automatisch, in meine Datenbank einlesen, da die Ordnernamen den Sendungstiteln entsprachen. Hätte ich nur die Dateinamen dann hätte ich im Aufnahmeverzeichnis alles "lose" Dateien bei z.T. 200 Dateien von denen es mehrere Blöcke mit dem gleichen Titeln gab wäre das Chaos pur. (1. Block 30 Dateien Sendungsname 1, nur durch die Aufnahmeuhrzeiten zu unterscheiden, 2. Block 50 Dateien Sendungsname 2 usw.).

In meiner Datenbank wird also für jede Sendung ein neuer Datensatz aus dem Ordnernamen angelegt und es werden die dazugehörigen Infos z.B. die Pfade zu den zugehörigen Mediendateien, den anderen Dateien, Aufnahme Datum, -uhrzeit usw. (generiert aus dem Aufnahmetitel) per Knopfdruck eingelesen.

 

Nun zu meinem Vorschlag einer Lösung des Problems.

 

Warum sollten User sauer sein, wenn das Unterverzeichnis gelöscht wird.

Da es Timeshift ist, ist es, bzw. sollte es sein, doch auch temporär, genau wie die Timeshift-Datei. Es können sich auch keine anderen Dateien darin befinden, weshalb es sogar genügt beim Senderwechsel den Ordner zu Löschen statt der Datei. 

 

Eine andere mögliche Lösung wäre es in den Code bei aktiven Kontrollkästchen "Für Timeshift verwenden" unter Optionen --> Aufnahme -->  Aufnahmeverzeichnisse mittels If _Funktion und durch "Split" und Left ab "\" alle Unterverzeichnisse zu entfernen und nur noch den Rest der Vorgaben für den Aufnahmetitel zu übernehmen.

Das Ergebnis ist dann wie in den früheren Versionen Timeshift = nur Datei, Aufnahme = Ordner + Datei.

 

Da das sicher nicht von jetzt auf gleich realisiert wird, hoffentlich aber irgendwann, noch eine Frage.

 

Gibt es eine Möglichkeit ein Script so einzubinden, dass beim Schließen des Viewers der Timeshift-Ordner komplett geleert wird um die Ordnerleichen zu entsorgen?

Das setzt natürlich voraus, dass dann die Wiedergabe gestoppt und somit Timeshift bereits beendet ist.

Es genügt mir zu wissen wie ich dem Viewer mitteile, dass er das Script beim Beenden startet.

Dank vorab

 

Link to post
Griga
vor 10 Stunden schrieb ebala:

Zu Deiner Frage wieso ich Unterverzeichnisse benutze: 1. Weil es die Option gibt

 

Die Frage war, warum du für jede einzelne Aufnahme ein separates Unterverzeichnis erzeugen lässt. Die Festlegung von Unterverzeichnissen im Dateinamenschema wird z.B. gerne verwendet, um mit %year\.... Aufnahmen gleich nach Jahren zu sortieren. So wie du benutzt jedoch kaum jemand die Möglichkeit. Dabei stellt sich die Frage nach dem Nutzen/Aufwand-Verhältnis. Wieviel programmtechnischen Aufwand sollte man für den Bedarf eines einzelnen Anwenders treiben?

 

vor 10 Stunden schrieb ebala:

Warum sollten User sauer sein, wenn das Unterverzeichnis gelöscht wird. Da es Timeshift ist, ist es, bzw. sollte es sein, doch auch temporär, genau wie die Timeshift-Datei. Es können sich auch keine anderen Dateien darin befinden, weshalb es sogar genügt beim Senderwechsel den Ordner zu Löschen statt der Datei. (...)

Eine andere mögliche Lösung wäre es in den Code bei aktiven Kontrollkästchen "Für Timeshift verwenden" unter Optionen --> Aufnahme -->  Aufnahmeverzeichnisse mittels If _Funktion und durch "Split" und Left ab "\" alle Unterverzeichnisse zu entfernen und nur noch den Rest der Vorgaben für den Aufnahmetitel zu übernehmen.

 

Du berücksichtigst die folgenden Punkte nicht:

  • Man kann im DVBViewer-UI eine laufende Timeshift-Aufnahme jederzeit in eine bleibende Aufnahme umdeklarieren und umgekehrt. Außerdem heißt die Option "Für Timeshift verwenden" und nicht "Exklusiv für Timeshift verwenden". Es ist also durchaus möglich, dass dort bleibende Aufnahmen landen.
  • Das Problem besteht nicht nur bei automatisch gelöschten Timeshift-Aufnahmen, sondern auch, wenn man Aufnahmen manuell im DVBViewer-UI löscht, entweder während der Aufnahme, weil man entscheidet, dass man sie doch nicht braucht, oder eine Zeit später mittels Aufnahmedatenbank. Dabei können ebenfalls leere Verzeichnisse stehenbleiben. Dies betrifft insbesondere auch die Funktion "Löschen und Neustart".
  • Es dürfte Anwender kaum freuen, wenn sie ein Aufnahmeverzeichnis erzeugen und der DVBViewer es nach der ersten Timeshift-Aufnahme, die dort landet, gleich wieder löscht, weil es leer geworden ist. Ganz zu schweigen von C:\Users\Public\Videos, das nach einer Erstinstallation standardmäßig Aufnahme- und Timeshift-Verzeichnis ist.
  • Die Funktionalität muss auch im DVBViewer Media Server implementiert werden, weil der DVBViewer eventuell Aufnahmen oder Timeshift an ihn delegiert.
  • Zusätzliche Komplikationen entstehen bei verschachtelten Unterverzeichnissen, z.B. mit dem Schema %year\%m\%name\...

Lösungen erscheinen Anwendern oft einfach, weil sie nur das eigene Nutzungsszenario im Blick haben. Schwierig wird es durch die Vielfalt der möglichen Nutzungsszenarien im DVBViewer.

 

Ein Löschen von Aufnahmeverzeichnissen durch den DVBViewer und DMS darf - wenn überhaupt - nur unter eng begrenzten Bedingungen stattfinden, wobei unerheblich ist, ob es sich um eine Timeshift-Aufnahme handelt oder nicht:

  • Das Verzeichnis muss beim Start der Aufnahme automatisch (durch das Dateinamenschema oder sonstwie) erzeugt worden sein. Es erfordert das Ergänzen/Durchreichen dieser Information an verschiedenen Stellen.
  • Es darf nur gelöscht werden, wenn es nach dem Löschen der Aufnahme (egal ob automatisch oder manuell) vollständig leer ist. Das Windows API erlaubt das Löschen sonst ohnehin nicht.

Es bleibt die Frage, ob der allgemeine Nutzen den Aufwand rechtfertigt.

 

vor 10 Stunden schrieb ebala:

Gibt es eine Möglichkeit ein Script so einzubinden, dass beim Schließen des Viewers der Timeshift-Ordner komplett geleert wird um die Ordnerleichen zu entsorgen?

 

Du kannst eine Batchdatei  schreiben, die den DVBViewer startet, wartet, bis er beendet wurde, und dann die Löschaktion durchführt.

 

Link to post
ebala

Danke erstmal für die Antworten.

 

vor 5 Stunden schrieb Griga:

Die Frage war, warum du für jede einzelne Aufnahme ein separates Unterverzeichnis erzeugen lässt

Weil ich im Schnittprogramm dann keins manuell erzeugen muss und auch im Explorer schon eine Übersicht ausschließlich nach den Titeln habe, wogegen die Aufnahmedateien nach Uhrzeit und Datum sortiert sind, sodass thematisch gleiche Sendungen chronologisch im selben Ordner landen, wodurch wiederum  das Auffinden und den Schnitt vereinfacht wird. Auch ist das Importmodul meiner Datenbank genau auf dieses Szenario programmiert.

 

vor 5 Stunden schrieb Griga:

Wieviel programmtechnischen Aufwand sollte man für den Bedarf eines einzelnen Anwenders treiben?

Es ist mir durchaus klar, dass es unmöglich und auch nicht nötig ist jedes User-Szenario abzudecken.

 

Mein Ansatz war daher ganz simpel:

Ging früher --> Geht nicht mehr --> also frage mal nach ob Du einen Denk-/Bedienfehler machst oder ob es eine Lösung gibt.🙂

 

Da es innerhalb der Software keine Lösung gibt, heißt das für mich, dass ich entweder mein komplettes Prozedere verändern muss, was nicht so toll wäre, da ich den Import in meine Datenbank umprogrammieren muss oder die vorgeschlagene Batch-Lösung, wozu ich momentan eher neige.

Würde sie aber in den Autostart legen, da es mir reicht wenn der Ordner beim Hochfahren "geputzt" wird.

 

vor 5 Stunden schrieb Griga:

Lösungen erscheinen Anwendern oft einfach, weil sie nur das eigene Nutzungsszenario im Blick haben. Schwierig wird es durch die Vielfalt der möglichen Nutzungsszenarien im DVBViewer.

Ist mir bewusst und ich hatte bei meinen Lösungsansätzen keine perfekte und vollständige Lösung im Sinn, da ich aus der "Ameisenperspektive" natürlich nicht alle Szenarien überblicken kann und auch den Code nicht kenne, um zu wissen an welchen Schrauben gedreht werden müsste und welche Auswirkungen diese haben.

 

Trotzdem würde ich, auch auf die Gefahr hin das ich wahrschenlich wieder etwas übersehe, den folgenden Ansatz ins Spiel bringen.

 

Alle Timeshift-Aufnahmen landen wieder generell in einem separaten Verzeichnis, welches unterhalb des Standard-Aufnahme-Verzeichnis liegt. Dadurch ist sichergestellt, das kein langwieriger Kopiervorgang über verschiedene Festplatten erfolgt. Wenn die Timeshift-Aufnahme behalten wird, wird sie im Anschluss in den Aufnahme-Ordner verschoben und zwar mit allen Unterverzeichnissen bis unterhalb des Timeshift-Ordners. Beim Beenden des Viewers wird der Timeshift-Ordner geleert.

 

------

Leere Ordner löschen per Powershell-Skript

 

Falls es jemanden mit dem gleichen Problem gibt, hier meine Lösung per Powershell-Skript:

 

Es werden nur leere Ordner im ausgewählten Verzeichnis gelöscht Ordner mit Dateien bleiben erhalten.

 

Den folgenden Code in eine Textdatei kopieren und diese dann umbennenen mit der Endung .ps1 z.B. Timeshift_Loeschen.ps1

 

Den Text "Mein Timeshift-Ordner-Pfad" durch den Pfad zum Timeshift-Ordner ersetzen. Der Pfad muss in Anführungszeichen z.B "C:\Videos\Aufnahme\Timeshift"

 

Das ganze kann dann z.B. in den Autostart gelegt werden, sodass bei jedem Rechnerstart der Ordner geleert wird.

 

Hier der Code:

 

$alleordner=Get-ChildItem -Path "Mein-Timeshift-Ordner-Pfad" -Directory -Recurse
foreach($ordner in $alleordner)
{
    if(($ordner | Get-ChildItem -Recurse).Count -eq 0)
    {
      Remove-Item -Path $ordner.FullName
    }
}

 

 

 

 

 

Link to post
ebala

Noch zur Ergänzung hier die Anwendung des Powershell-Skripts.

 

Es kann nur eine Verknüpfung zum PS.-Skript mit dem Autostart ausgeführt werden, nicht aber das Skript selbst. Daher erstellt eine mit nachfolgenden Parametern.

 

In den Eigenschaften der Verknüpfung muss unter "Ziel" folgendes angegeben werden, wobei "Mein-Timeshift-Pfad" durch den Pfad zum Skript ersetzt wird.

 

 

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "Mein-Timeshift-Pfad \Timeshift_loeschen.ps1"

 

 

Jetzt kann die Verknüpfung falls nicht schon geschehen in den Autostart kopiert werden. Entweder für alle Nutzer :

 

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

 

oder für einzelne Nutzer:

 

C:\Users\Nutzer\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Link to post
Griga
vor 17 Stunden schrieb ebala:

Trotzdem würde ich, auch auf die Gefahr hin das ich wahrschenlich wieder etwas übersehe, den folgenden Ansatz ins Spiel bringen. Alle Timeshift-Aufnahmen landen wieder generell in einem separaten Verzeichnis, welches unterhalb des Standard-Aufnahme-Verzeichnis liegt....

 

Im Prinzip keine schlechte Idee. Sie löst aber nicht das Problem, dass nach dem Löschen von Aufnahmen leere Ordner übrigbleiben. Dies kam schon zweimal zur Sprache

 

https://www.dvbviewer.tv/forum/topic/52553-aufnahmeordner-mit-löschen/

https://www.dvbviewer.tv/forum/topic/59877-manuelle-aufnahme-und-andere-fragen/

 

Es gibt also noch mehr Verrückte , die jede Aufnahme in einem separaten Ordner speichern. ;)

 

Das Löschen komplett leerer Ordner, die der DVBViewer aufgrund des Dateinamenschemas automatisch erstellt hat, ist mit vertretbarem Aufwand machbar, wie ein Versuch ergeben hat. Es beschränkt sich jedoch auf das Löschen laufender Aufnahmen (was Timeshift-Aufnahmen mit erschlägt). Ein paar Komplikation gibt es beim Delegieren von Aufnahmen/Timeshift an den Media Server, aber auch das ist beherrschbar. Der größte Zeitaufwand resultiert nicht aus dem Coden, sondern aus den zahlreichen Tests für die Überprüfung der Funktion. Es gibt im DVBViewer halt viele verschiedene Abläufe, in denen das Löschen vorkommt, und mit dem Media Server noch einige mehr.

 

Damit ist jedoch noch nicht der Wunsch aus den obigen beiden Themen erfüllt. Bei einem späteren Löschen von Aufnahmen steht i.a. das Timerobjekt nicht mehr zur Verfügung, in dem die Information "Ordner wurde automatisch erzeugt" gespeichert ist. Um sie dauerhaft zu erhalten, müsste die Aufnahmedatenbank im DVBViewer und DMS um ein entsprechendes Feld erweitert werden., einschließlich der EPG Info-Dateien, die ein externes Backup der Einträge darstellen...

 

Link to post
ebala
vor 4 Stunden schrieb Griga:

Sie löst aber nicht das Problem, dass nach dem Löschen von Aufnahmen leere Ordner übrigbleiben. Dies kam schon zweimal zur Sprache

 

Darauf bin ich nicht eingegangen, weil ich Probleme die ich nicht kenne, da ich sie nicht habe, nicht besprechen wollte, was ich dann unten doch tue 🙂. Das liegt daran, dass ich Aufnahmen direkt im Aufnahmeverzeichnis, also manuell lösche. Auch nutze ich den Media Server nicht, weshalb ich mich auch hierzu nicht geäußert habe. Daher zielten meine Beiträge nur auf die Timeshift-Funktionalität.

 

Für jeden der Aufnahmen aus dem OSD heraus löscht, stellt das sicher ein Problem dar, für mich, der per Maus direkt im Verzeichnis arbeitet und dort sowieso den Ordner komplett löscht, nicht.

Das OSD nutze ich nur für die EPG und auch dann nur zum Lesen der Programminfos, Aufnahmen programmiere ich ausschließlich über das EPG-Fenster.

Auch die Datenbank benutze ich nicht darüber hinaus, zumindest nicht mit Vorsatz und die Wiedergabe läuft, ebenfalls ausschließlich, über den VLC.

 

Ohne es komplett durchdrungen zu haben, vielleicht tut es im Aufnahmeverzeichnis, wenn dort in Ordner gespeichert wird, ja folgendes:

 

Alles baut auf dem Ansatz auf, dass Timeshift und normale Aufnahmen in getrennten Verzeichnissen liegen.

 

(Beispiel Aufnahme mit zwei Unterverzeichnissen -  %year\%m + dem bei der Aufnahme angelegten Ordner)

 

1. User ruft den Löschen-Befehl auf

  Vor dem Löschen wird der gesamte Pfad zu der zu löschenden Mediendatei in eine Variable gepackt.

2. letzte Mediendatei wird gelöscht, sodass der direkte Aufnahme-Ordner leer ist

3 . -> Prüfe ob der Aufnahme-Ordner leer --> Wenn "ja", dann Msg "Soll der Ordner -Name des Ordners (hier der Aufnahme-Ordner)-- gelöscht werden?".Pfad wird in der Variablen gekürzt bis zum nächste Backslash

4. Prüfe, mit dem gekürzten Pfad aus der Variablen den nächsten Ordner (hier %m) ob er leer ist -->Wenn ja Msg "Soll der Ordner -Name des Ordners (jetzt derMonat %m)- gelöscht werden?

usw.

 

Das Spiel geht genauso lange, bis der Ordnerpfad des geprüften Ordners = Ordnerpfad des festgelegten Aufnahme-Verzeichnis ist oder der User Nein klickt.

So hat der User den schwarzen Peter falls er ein von ihm angelegtes Verzeichnis löscht. Letztendlich verliert er aber keine Daten da es ja leere Verzeichnisse sind.

 

-------------------------------------------------------

 

vor 5 Stunden schrieb Griga:

Es gibt also noch mehr Verrückte , die jede Aufnahme in einem separaten Ordner speichern.

Prima, jetzt fühle ich mich nicht mehr so einsam. 🙂

 

Und hier noch ein Argument für die Speicherung jeder Aufnahme in einem Ordner. Es macht schon in dem Moment Sinn, wenn man die EPG-Infos speichert um z.B. die Sendungsinfo griffbereit zu haben. So liegen Text- und Mediendatei immer zusammen und lassen sich im Explorer schneller verschieben und ansehen.

 

Natürlich nur für die User, die Aufnahmen am PC weiterverarbeiten. So kann ich mir jederzeit den Inhalt der Aufzeichnung lt. EPG anzeigen lassen, falls mir der Titel nichts mehr sagt, weil die Aufnahme schon länger zurück liegt.

Für reine "OSD-ler" spielt das natürlich keine Rolle.


 

Also, dann danke für die Antworten. Ich kann mit meiner Skript-Lösung leben. Es würde mich aber trotzdem freuen, wenn eine Lösung, wie oben von Dir angedacht, kommen würde.

LG

 

 

Link to post
Griga
Am 3.5.2021 um 20:26 schrieb ebala:

Das liegt daran, dass ich Aufnahmen direkt im Aufnahmeverzeichnis, also manuell lösche.

 

...was in der Aufnahmedatenbank des DVBViewers zunehmend Karteileichen hinterlässt, bis du die Datenbank aktualisierst.

 

Am 3.5.2021 um 20:26 schrieb ebala:

Es würde mich aber trotzdem freuen, wenn eine Lösung, wie oben von Dir angedacht, kommen würde.

 

Sie wird wahrscheinlich kommen. Und du wirst sie vorab testen müssen. Die Testversion erreicht dich dann als PM.

 

Inzwischen sind die Arbeiten weiter fortgeschritten. Mir ist inzwischen aufgegangen, dass das Speichern der Information "Es wurden automatisch Verzeichnisse (aufgrund des Dateinamenschemas) erzeugt" nicht reicht. Erforderlich ist, den so erzeugten Pfad festzuhalten, um auch verschachtelte Verzeichnisse löschen zu können, z.B. resultierend aus %year\%m\%event\...

 

Also war in den Timer-Objekten und der Aufnahme-Datenbank ein entsprechendes Textfeld einzurichten sowie eine Funktion, die nach dem Löschen einer Aufnahme die notierten Verzeichnisse "von hinten nach vorne" abklappert und eliminiert, aber abbricht, sobald Windows sich sträubt, weil das Verzeichnis nicht leer ist.

 

Bei Tests funktioniert das recht gut, abgesehen von der üblichen Tücke des Objekts: Wenn der DVBViewer ein Verzeichnis löscht, dessen Inhalt ein Explorerfenster gerade anzeigt, wechselt dieses automatisch in das nächsthöhere Verzeichnis. Soweit, so gut. Wenn der DVBViewer jedoch das nächsthöhere Verzeichnis ebenfalls löschen will, geht es dem Explorer zu schnell, und Windows verweigert aufgrund einer Zugriffskollision das Löschen (so zumindest unter Windows 8.1). D.h. das Verzeichnis bleibt dann stehen, und es lässt sich kaum etwas dagegen tun. DVBViewer & Explorer sind halt keine synchronisierten Prozesse.

 

Dies gilt auch für weitere Programme, die sich eventuell mit den Verzeichnissen und deren Inhalt befassen, z.B. einem Dienst des Windows Media Players, der im Hintergrund Medieninhalte katalogisiert. Da könnte es noch einige Überraschungen geben...

 

Link to post
ebala
Posted (edited)
vor 13 Stunden schrieb Griga:

...was in der Aufnahmedatenbank des DVBViewers zunehmend Karteileichen hinterlässt, bis du die Datenbank aktualisierst.

Yep, was mich aber nicht juckt, da ich sie nicht (bewusst) nutze.☺️

 

vor 13 Stunden schrieb Griga:

Sie wird wahrscheinlich kommen. Und du wirst sie vorab testen müssen. Die Testversion erreicht dich dann als PM.

O.K.

vor 13 Stunden schrieb Griga:

Wenn der DVBViewer jedoch das nächsthöhere Verzeichnis ebenfalls löschen will, geht es dem Explorer zu schnell, und Windows verweigert aufgrund einer Zugriffskollision das Löschen (so zumindest unter Windows 8.1). D.h. das Verzeichnis bleibt dann stehen, und es lässt sich kaum etwas dagegen tun. DVBViewer & Explorer sind halt keine synchronisierten Prozesse.

Ohne irgendetwas probiert zu haben und die Datenbank zu kennen mal so ins Blaue.

 

Brich den Vorgang ab sobald ein Verzeichnis übersprungen wird.

Prüfe nach dem Löschen und dem Wechsel in das nächste Verzeichnis ob es noch Unterverzeichnisse gibt.

Wenn ja, ist das beschriebene Problem aufgetreten.

Nutze jetzt den Pfad bis zu dem nicht gelöschten Verzeichnis oder lies ihn neu aus.

Erzeuge jetzt ein Skript, dass den Vorgang z.B. beim Beenden des DVB-Viewers nochmal startet.

Klappt das auch nicht, dann beim nächsten Start oder anhand des Datum beim nächsten Start nach 24h usw.

Per Meldung kannst Du auch nach diversen Fehlversuchen, z.B. weil der Störer im Autostart liegt oder ein Dienst ist, den User informieren.

Prüfe ob das angegebene Verzeichnis noch leer ist. Wenn ja, dann,

Msg: "Ein Dienst oder Programm verhindert mehrfach das leere Verzeichnis [Verz.-Pfad] zu löschen. Möchten Sie versuchen das Verzeichnis manuell zu löschen"

Bei "ja" öffnet sich das Verzeichnis oberhalb des zulöschenden Ordners. Die Alternative ist "Später"

D.h. natürlich, dass Du generell prüfen musst, ob das Verzeichnis noch vorhanden ist, da der User versucht sein könnte noch mehr zu löschen.

Die Datenbank muss dementsprechend aktualisiert werden. Am besten beim Start und vor den Löschvorgängen.

 

Edited by ebala
Link to post
Griga
Am 7.5.2021 um 22:49 schrieb ebala:

Ohne irgendetwas probiert zu haben und die Datenbank zu kennen mal so ins Blaue.

 

Zu aufwändig und kompliziert. Sowas zieht erfahrungsgemäß weitere Probleme nach sich, die dann mit noch komplizierteren Maßnahmen bekämpft werden müssen, usw.

 

Die PM mit einer DVBViewer-Testversion ist abgeschickt.... Feedback bitte hier im Forum.

 

Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...