I'm having problems when copying music to a collection in a USB Mass Storage device with the "VFAT safe names" option checked.
VFAT doesn't accept file or directory names ending in a space:
hactar% touch 'blah '
touch: setting times of `blah ': No such file or directory
hactar% mkdir 'blah '
mkdir: cannot create directory `blah ': Invalid argument
It also ignores periods in the end of a file or directory name:
hactar% ls blah
ls: cannot access blah: No such file or directory
hactar% touch blah.
hactar% ls blah
hactar% ls blah.
hactar% ls blah.....
hactar% mkdir blah.
mkdir: cannot create directory `blah.': File exists
hactar% rm blah
hactar% mkdir blah..
hactar% ls -d blah
hactar% mkdir blah
mkdir: cannot create directory `blah': File exists
hactar% mkdir blah...
mkdir: cannot create directory `blah...': File exists
The result is that Amarok can't create a destination directory for an album called (for example) "On verra plus tard ...", since it would effectively be trying to create a directory called "On verra plus tard " (with a space in the end of the directory name) and VFAT doesn't accept that.
This is also a problem when a music track doesn't have album name information and the directory structure is of the form "Artist - Album Name". It will try to create a directory "Artist - " (also with a space in the end).
The workaround I'm using is to chekc the option to substitute spaces with underscores.
Git commit 26e79f334803d757e971df1ad46f9bb5b0bb151d by Ralf Engels.
Committed on 03/02/2013 at 22:04.
Pushed by rengels into branch 'master'.
Fix: VFAT safe names missing a couple of idiosyncrasies
There was some confusion about sanitizing parts or the whole path
M +8 -9 src/dialogs/TrackOrganizer.cpp
M +1 -1 src/dialogs/TrackOrganizer.h