[F] Umbenennen schreibgeschützter Dateien

Die Aktion "Tag -> Filename" scheitert, wenn Dateien schreibgeschützt sind. Mp3tag bietet an, den Schreibschutz zu deaktivieren, um die Datei umzubenennen.

Das Verhalten ist seltsam, da eine Umbenennung schreibgeschützter Dateien jederzeit möglich ist; der Inhalt der Datei wird beim Umbenennen schliesslich nicht geändert.

MP3Tag bennennt offensichtlich nicht um sondern speichert die Datei wohl neu ab.

Der Schreibschutz "Read Only" ist ein Attribut der Dateieigenschaften.
Der eingeschaltete Schreibschutz soll die Datei vor einer Veränderung bewahren.
Zu den schützenswerten Eigenschaften gehört auch der Dateiname selbst.
Deshalb fragt z. B. auch der Windows Explorer den Benutzer, ob eine schreibgeschützte Datei tatsächlich umbenannt werden soll.
Nichts anderes macht Mp3tag auch, und das ist auch sinnvoll.

Meldungsfenster bei Aktionen kann man in den Mp3tag Optionen ausschalten.
Die Schreibschutzmeldung erscheint aber trotzdem, zumindest bei "Aktionen (Quick)".

Weil man bei mehreren ausgewählten Dateien nur einmal den Sicherheitsdialog bestätigen muss, hält sich die "Belästigung für den Anwender" in Grenzen, zumal man davon ausgehen sollte, dass eine kurze Erinnerung an den Anwender über den schützenswerten Zustand durchaus immer sinnvoll ist.

Beim "Rückgängigmachen" setzt Mp3tag einen zuvor aufgehobenen Schreibschutz leider nicht wieder zurück.

DD.20150620.1322.CEST

.

Es ist ja noch ok, dass Mp3tag vor dem Umbenennen schreibgeschützter Files fragt. Aber es benennt sie nicht um, ohne den Schreibschutz zu entfernen, und das finde ich nicht mehr ok.

Mit anderen Worten ... du wünschst also nach dem Umbenennen einer zuvor schreibgeschützten Datei, dass für diese Datei wieder das Schreibschutz-Attribut gesetzt werden soll?

DD.20150620.1327.CEST

Also im Prinzip sollte der Schreibschutz erst garnicht entfernt werden, weil das technisch zum Umbenennen nicht notwendig ist. Und auch der Explorer, wie ich gerade getestet habe, benennt klaglos und ohne Rückfrage schreibgeschützte Files um. (getestet auf Win8.1 Update 1 x86)

Nach meinem Wissen ist es technisch nicht möglich, ... mit Mp3tag ... eine Datei mit einem anderen Namen zu benennen, wenn der Schreibschutz gesetzt ist, ... es sei denn, der Schreibschutz wird vorher aufgehoben.
Der Schreibschutz soll die Datei ja vor einer Veränderung schützen, ...
und der Dateiname bzw. Speicherort ist eine schützenswerte Eigenschaft von jeder Datei im Dateisystem ...
... jedenfalls sieht es Mp3tag so, oder wie?

DD.20150620.1358.CEST, DD.20150620.1929.CEST

Gerade ausprobiert: Sowohl "MoveFile" als auch "MoveFileEx" aus dem Win32-API haben kein Problem damit, schreibgeschützte Datein umzubenennen oder zu verschieben. Habe ich auch nicht anders erwartet, denn der Schreibschutz bezieht sich auf den Dateiinhalt, nicht auf die Metadaten.

Hmm, ich habe das auch noch einmal ausprobiert, und wie es aussieht, lag ich falsch mit meiner Meinung, und du hast Recht damit, dass "MoveFile" eine Datei verschiebt bzw. umbenennt, auch wenn diese mit dem Attribut "ReadOnly" versehen ist.
Zusammen mit dem Beitrag von 'poster' liegt jetzt die Vermutung nahe, dass Mp3tag einen Schreibzugriff auf die Datei macht, und dadurch die Fehlermeldung bzw. Rückfrage beim Anwender auslöst.
Vielleicht benutzt Mp3tag eine eigene veränderte API.

DD.20150620.1925.CEST

Ich habe in anderem Kontext schon Ähnliches feststellen müssen.
/t/16822/1

Danke für den Hinweis. Ich hab das im aktuellen Development Build (v2.70a) nun geändert, sodass der Schreibschutz beim Umbenennen nicht mehr entfernt werden muss.

Viele Grüße
Florian

Eigentlich fehlt jetzt noch der Hinweis, ...
wie man einen Dateinamen in Mp3tag vor dem ungewollten Ändern schützen kann, ...
also so wie es der Windows Explorer macht.

DD.20150711.1440.CEST

Wie wird es denn da gemacht?

Ich verwende auf meinem Entwicklungssystem Windows 7 und dort wird beim Umbenennen von schreibgeschützten Dateien momentan kein Hinweis angezeigt.

Viele Grüße
Florian

Ich verwende Windows XP SP3 und habe eine zeitlang in der Registry betreffend Windows Explorer nach irgendeinem Bit gesucht, mit dem man die Bestätigungsbox beim Umbenennen einer schreibgeschützten Datei ein- bzw. ausschalten kann; leider ohne Erfolg.
Auch mit der Google Suche gab es keine konkreten Treffer, merkwürdig.
Am ehesten noch das ...
https://www.informit.com/library/content.as...&seqNum=179
Renaming a File
When you rename a file, it remains in the same directory and nothing materially happens to the contents of the file—the name is changed to something else. Because the original file isn't altered, renaming a file isn't as risky as performing an action such as deleting the file. Nevertheless, it is frustrating trying to determine what happened to a file when it was mistakenly renamed. To rename a file, use the Move() method of System.IO.File, specifying a new filename but keeping the same path.

In Verbindung mit einer Attribut-Abfrage (Retrieving File Properties, read-only attribute) könnte man also eine Sicherheitsabfrage bzw. einen Bestätigungsdialog realisieren, um das Verhalten des Windows-Explorers nachzumachen.

In "Mp3tag Options/Messages" sollte diese Nachricht einstellbar gemacht sein.

Viele Grüße
Detlev

DD.20150711.2100.CEST

D.h. bei Dir wird eine Sicherheitsabfrage angezeigt, wenn Du eine schreibgeschützte Datei im Windows Explorer umbenennst?

Ich hab das mal eben getestet: Unter Windows XP SP3 wird eine Sicherheitsabfrage angezeigt. Unter Windows 7 und Windows 8.1 nicht mehr.

Ich werde das erstmal so belassen wie in v2.70a und keine Abfrage einbauen.

Viele Grüße
Florian

Hmm, ich möchte doch meinen Zweifel äußern, ob das Abbauen von Nachfrage-Sicherheit beim Umbenennen von Dateinamen resp. beim Umbenennen von ganzen Dateipfaden den Benutzern von Mp3tag zuträglich ist, ... wohl eher nicht, ... weil das ja immer wieder einmal passieren kann, ...
und ob schließlich dann die Rückgängig-Funktion noch rechtzeitig benutzt werden kann, das wird auch nicht gewährleistet sein ...
also mit dieser Entscheidung wird Mp3tag ein deutliches Bisschen an Anwendungssicherheit verlieren.

DD.20150712.1943.CEST

hier eine option, den schreibschutz nach aufheben des schreibschutzes und taggen auch wieder zu setzen:
Menüpunkt "Extras/Optionen/Tools"
neues Tool z.B. "Schreibschutz setzen" über den Pfad-Button zur attrib.exe (c:\windows\system32) gibst als Parameter +r ein und setzt ein Häkchen bei "Für alle ausgewählten Dateien".

Fortan kannst Du für in Mp3Tag markierte Files über rechte Maustaste - Tools den Schreibschutz wieder setzen.

thanx to http://bit.ly/2hEJVzb