On Tuesday 01 March 2011 05:35:38 Steven Schveighoffer wrote: > On Tue, 01 Mar 2011 08:13:33 -0500, Lars T. Kyllingstad > > <[email protected]> wrote: > > On Tue, 01 Mar 2011 08:02:44 -0500, Steven Schveighoffer wrote: > >> On Tue, 01 Mar 2011 04:16:36 -0500, Jonathan M Davis > >> > >> <[email protected]> wrote: > >>> I can understand if the path stuff > >>> can't deal with / or \ in file names (that's probably not worth trying > >>> to get to > >>> work right), but it _should_ be able to handle directories with dots in > >>> them and > >>> files with no extension. > >> > >> / and \ are not legal in names on any filesystem that I know of. > >> > >> -Steve > > > > On a *NIX machine, try > > > > touch "c:\\foo\\bar" > > > > You may be surprised. ;) > > bleh... that seems useless :) I purposely checked FAT before posting, > because I was sure Unix disallowed backslashes, I wanted to make sure FAT > didn't allow slashes. > > Holy crap, something that DOS got right and Unix didn't! > > From this page: http://en.wikipedia.org/wiki/Filename, it appears that > really, the only disallowed character in unix filenames is '/'. Even '*' > is allowed as a filename. How... horrible.
Actually, a number of unix file systems allow / in the name too. The extX file systems don't, but reiserFS, btrfs, and XFS are some of those which do. The only character which is _certain_ that it can't be valid in a file name, I believe is NUL. However, given how much of a royal pain it would be to handle / correctly in file names and how so few programs are able to handle files with / in their name, I don't think that it's worth trying to make std.path handle file names with / in them correctly. _Maybe_ it should handle \ correctly on Linux, but even then, I'd argue that it shouldn't be trying to special case it. Now, as for other characters like * or :, I've found it to be _very_ useful to be able to put those in file names - particularly when ripping music - and the fact that Windows is far more restrictive in what it allows in file names is highly annoying. I _like_ the fact that Linux lets you put pretty much any character in a file name. I do think that trying to fully support / and \ is pushing it however - particularly since it's highly unlikely that they'll be handled correctly by other programs anyway. Too many programmers have already assumed that they aren't legal characters in file names. - Jonathan M Davis
