File System Plugin - Dir/MkDir/RmDir-Fehler anzeigen

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
gce
Junior Member
Junior Member
Posts: 19
Joined: 2013-10-31, 09:52 UTC

File System Plugin - Dir/MkDir/RmDir-Fehler anzeigen

Post by *gce »

Wenn FsGetFile() oder FsPutFile() einen Wert ungleich FS_FILE_OK liefert (bzw. FsDeleteFile() der Wert FALSE liefert), dann zeigt der TotalCommander einen Fehlerdialog an. Das ist gut.

Ist es Absicht, dass dies aber nicht geschieht, wenn FsFindFirst(), FsMkDir() oder FsRemoveDir() einer Fehler liefert?
Bzw. besteht die Chance, dass dieses inkonsistente Verhalten geändert wird?

Außerdem ist mir folgendes aufgefallen:

Wenn ein Baum kopiert wird und dabei ein FsMkDir() misslingt, so wird trotzdem versucht, Dateien in das nicht erzeugte Verzeichnis zu kopieren.
Ist das beabsichtigt?

Wenn ein Baum gelöscht wird und ein FsDeleteFile() misslingt, so wird trotzdem versucht das (nicht leere) Verzeichnis zu löschen.
Ist das beabsichtigt?
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50584
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Ist es Absicht, dass dies aber nicht geschieht, wenn FsFindFirst(), FsMkDir() oder FsRemoveDir() einer Fehler liefert?
Bzw. besteht die Chance, dass dieses inkonsistente Verhalten geändert wird?
TC sollte in diesem Fall einfach nicht ins Verzeichnis hinein wechseln.
Wenn ein Baum kopiert wird und dabei ein FsMkDir() misslingt, so wird trotzdem versucht, Dateien in das nicht erzeugte Verzeichnis zu kopieren.
Ist das beabsichtigt?
Ja, weil es sein kann, dass der Ordner bereits existiert, und deshalb nicht angelegt werden konnte.
Wenn ein Baum gelöscht wird und ein FsDeleteFile() misslingt, so wird trotzdem versucht das (nicht leere) Verzeichnis zu löschen.
Ist das beabsichtigt?
Ja, gerade bei Servern ist es oft so, dass andere User gleichzeitig auf dem Server arbeiten, so dass die Datei bereits gelöscht sein könnte.
Author of Total Commander
https://www.ghisler.com
gce
Junior Member
Junior Member
Posts: 19
Joined: 2013-10-31, 09:52 UTC

Post by *gce »

ghisler(Author) wrote:
Ist es Absicht, dass dies aber nicht geschieht, wenn FsFindFirst(), FsMkDir() oder FsRemoveDir() einer Fehler liefert?
Bzw. besteht die Chance, dass dieses inkonsistente Verhalten geändert wird?
TC sollte in diesem Fall einfach nicht ins Verzeichnis hinein wechseln.
O.k., das passt für ein misslungenes FsFindFirst().
Aber bei misslungenem FsMkDir() oder FsRemoveDir() sollte wohl analog zu FsGetFile(), FsPutFile() und FsDeleteFile() ein Fehler-Dialog angezeigt werden.
ghisler(Author) wrote:
Wenn ein Baum kopiert wird und dabei ein FsMkDir() misslingt, so wird trotzdem versucht, Dateien in das nicht erzeugte Verzeichnis zu kopieren.
Ist das beabsichtigt?
Ja, weil es sein kann, dass der Ordner bereits existiert, und deshalb nicht angelegt werden konnte.
Ein gutes Argument!
Allerdings ruft der TC nach dem FsMkDir() noch FsFindFirst() auf und obwohl das bei fehlendem Verzeichnis misslingt, versucht er trotzdem Dateien hineinzukopieren.
M.E. sollte dieses Verhalten geändert werden.
gce
Junior Member
Junior Member
Posts: 19
Joined: 2013-10-31, 09:52 UTC

Post by *gce »

Es ist noch schlimmer:

Wenn man ein Unterverzeichnis von einem Verzeichnis in ein anders verschiebt, so wird natürlich als erstes versucht, das Unterverzeichnis im neuen Verzeichnis zu erzeugen (FsMkDir).

Wenn das misslingt (z.B. weil es dort eine Datei dieses Namens gibt) und daher auch das nachfolgende FsFindFirst auf das neue (nicht erzeugte) Unterverzeichnis misslingt, so wird trotzdem das ursprüngliche Unterverzeichnis gelöscht (FsRemoveDir).

Da ist m.E. das Schlimmste, was bei einem Move passieren kann: Das Alte wird gelöscht, obwohl das Neue nicht erzeugt werden konnte!
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50584
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Das sollte eigentlich nichts ausmachen, weil FsRemoveDir nur leere Verzeichnisse löschen sollte - wenn das Plugin trotzdem nicht leere damit löscht, dann sollte das vom Autor dringend geändert werden...
Author of Total Commander
https://www.ghisler.com
Post Reply