Comment 14 for bug 318625

Revision history for this message
John Ward (automail) wrote :

I'm not confident enough to propose elaborate solutions to these problems, especially at the technical end of things. I do agree that Rhythmbox isn't the problem here, although one of the simplest solutions would be to make it simple to enable "special character stripping". The problem is in the NTFS-3G driver, I think. It shouldn't impose full POSIX compatibility on a filesystem that is associated with an OS that isn't POSIX compliant. The developer suggests it's needed for full flexibility and interoperability:

From: http://www.tuxera.com/community/ntfs-3g-faq/#posixfilenames2
"NTFS supports several filename namespaces at the same time: DOS, Win32 and POSIX. While the NTFS-3G driver handles all of them, it always creates new files in the POSIX namespace for maximum portability and interoperability reasons. This means that filenames are case sensitive and all characters are allowed except ‘/’ and ”. This is perfectly legal on Windows, though some application may get confused. If you find so then please report it to the developer of the relevant Windows software."

His first suggestion that it's for "maximum portability and interoperability" reasons is instantly quashed by the fact that the files are unusable and completely incompatible within Windows.

You'll notice he says towards the end "This is perfectly legal on Windows, though some applications may get confused... please report it to the developer...". Windows Explorer is the first thing that get's confused and the command prompt can't manipulate it either, not just some Windows application, the Windows system. I have not tested compatibility right through Vista and 7, but it's definitely apparent in XP and I assume those two as well. The NTFS-3G driver has got to prevent the use of special characters in the same way that Nautilus prevents forward slashes being used on ext4 partitions.

The way I see it is, preventing the characters is a much safer option than allowing.