(Edit: this initiated as a feature request, but later I became aware that I could implement it on a script, so I did it and cancelled the request.)
The program MusicBrainz Picard has two renaming options that I liked, but that program works only for music.
They are:
- when renaming, move files to an user specified base directory...
- and move additional files together.
e.g.
Old name isArtist - Title.mp3
;
Full path isC:\Music\Artist - Title.mp3
;
New name is{Artist}\{Track Number} - {Title}.mp3
(replace these with the correct shortcodes);
User defined base directory isD:\
;
Final name becomesD:\Artist\1 - Title.mp3
(replace these with the correct embedded metadata);
There was the additional fileC:\Music\Cover.jpg
;
User defined that*.jpg
should be moved together.
The additional file becomesD:\Artist\Cover.jpg
(same level of the file);
If possible, I would like to have relative reference for the additional files.
e.g.
There was the additional fileC:\Cover.jpg
;
User defined that..\*.jpg
should be moved together (one level above the file).
The additional file becomesD:\Cover.jpg
(same relative level to the file);
And also support for moving folders as additional files.
e.g.
User defined that..\License\
should be moved together.
The additional folder becomesD:\License\
(including everything bellow);
The GUI could include new fields to let the user define the base directory and the additional files filter. The RENAME command should also include new parameters for these. For the additional files filter, instead of a string, an Opus filter could be used (saved or a new one).
With that, I could, for example, create a button that opened the "Edit Metadata" dialog, then, when it closed, applied a rename to the file as to reflect any metadata changes on the file system.
e.g. a script button capable of identifying the file group of the file and setting the rename parameters accordingly - if the file is a movie, set base directory as
D:\Movies
, else if a picture, set asD:\Picture
.
If this were implemented, I think I would not need the OnAfterRename event (as suggested on its thread). With the OnAfterRename event I would try to implement this. The OnAfterRename would have the advantage of being triggered by the inline rename also, but that is not too important to me.