[X] 2.37c: Fehler beim Umbenennen mit Leerschlag am Schluss


#1

Wenn ich einen Interpreten mit einem Leerschlag am Schluss des Namens im id3-Tag mit dem Tag->Dateiname-Konverter umbenennen will, bekomme ich eine Fehlermeldung:

---------------------------
Mp3tag v2.37c
---------------------------
Datei "\\\\Server\Pfad\2\INTERPRET  (Titel).mp3" konnte nicht in
                                ^^
 "\\\\Server\Pfad\INTERPRET \Album\01. Titel.mp3"
                        ^
umbenannt werden.

Das System kann den angegebenen Pfad nicht finden.
---------------------------

Das müsste ich wohl in ein $validate einpacken. Noch schöner wäre es, wenn mp3Tag einen solch ungültigen Verzeichnisnamen "automagisch" korrigieren und in diesem Fall den überflüssigen Leerschlag am Schluss wegschnippeln würde.


#2

Ich würde eher ein $trim() benutzen.
Wie sehen denn die Formatstrings aus, die du im Tag->Dateiname-Konverter benutzt?

DD.20061231.1414


#3

Bei obigem "Fehler" benutze ich: \%artist%\%album%$num(%track%,2). %title%Mein Vorschlag wäre sowas wie ein "internes" $validate, dass gleich auch andere ungültige Zeichen im Verzeichnis- oder Filenamen wie die bekannten Windows-Unverträglichkeiten \ /:*?"<>| wegschnippeln würde.


#4

Für mich sieht das so aus, als wenn du für deine Feldinhalte verantwortlich bist. und nicht der Programmierer.
Du musst selbst dafür sorgen, dass die Feldinhalte sauber sind, und wenn das nicht gewährleistet ist, dann zur Sicherheit $trim() benutzen:
$trim(%artist%)$trim(%album%)$num(%track%,2). %title%

DD.20061231.1438


#5

Du hast schon recht, nur wird das $trim keine ungültigen FeldINHALTE wie die oben beschriebenen ungültigen Windows-Zeichen bereinigen, oder?

Und dafür meine ich könnte grosszügigerweise der Programmierer sorgen - im vollen Bewusstsein, dass er mir dafür einen haufen Arbeit abnimmt. :blush: :whistling:


#6

Dafür gibt es ja $validate() und $replace(). Wenn Florian das Ersetzen übernehmen würde, würden sich die Leute beklagen, dass sie anstelle von "?" ein "_" haben möchten, andere würden sich wünschen, dass das "?" einfach gelöscht wird, ein dritter möchte vielleicht "¿" haben...


#7

Ok, ich glaub Euch ja, dass es Ersatz gibt. :unsure:

Ich finde halt Optionen wie "Ungültige Zeichen beim Umbenennen löschen" nützlicher.
Denjenigen, denen eine solche allgemeine $validate-Funktion nicht passt, könnten immer noch selber für einen differenzierteren $replace sorgen.

Alle anderen hätten aber per Mausklick sämtliche Sorgen bezüglich Sonderzeichen beim Umbenennen vom Tisch. :sunglasses:


#8

Hmm, ein Leerzeichen ist kein Sonderzeichen, sondern gehört durchaus zu den erlaubten Zeichen, auch bei Dateinamen (bei Dateinamen nur nicht am Anfang und bei Ordnernamen nicht am Anfang und nicht am Ende - der Windows Explorer bereinigt sofort solche falschen Eingaben).

Wenn ich den beschriebenen Fall richtig verstanden habe, dann meldete das Dateisystem einen Fehler nachdem du versucht hattest, mithilfe der Mp3tag Automation, einen Ordner zu erzeugen, dessen Name am Ende ein Leerzeichen hat. Mp3tag hat diesen Fehler abgefangen und an dich weitergeleitet. Soweit, so gut.

Man könnte sich für solche Fälle wünschen, dass der Programmierer diese kleinen Nachlässigkeiten der Benutzer ausbügelt, und eine smarte Funktion einbaut, die dafür sorgt, dass bei Zeichenketten, die im Dateisystem als Ordner- oder Dateinamen verwendet werden, die führenden und angehängten Leerzeichen automatisch entfernt werden, sie also valide macht.

Eine solche smarte Funktion gehört nicht grundlegend zum Leistungsumfang einer $validate() Funktion, könnte aber als Option eingebaut werden, oder nicht, Florian?

Was das Thema ungültige Zeichen bei meinem Homepage Provider betrifft:
Erlaubt sind [a-zA-Z0-9_~.-$], nichts da mit Sonderzeichen, so radikal schafft es $validate() auch nicht.

DD.20061231.1740