std.path.getName(): Screwy by design?
Lars T. Kyllingstad
public at kyllingen.NOSPAMnet
Tue Mar 1 06:31:18 PST 2011
On Tue, 01 Mar 2011 08:50:29 -0500, Nick Sabalausky wrote:
> "Steven Schveighoffer" <schveiguy at yahoo.com> wrote in message
> news:op.vrn2pooteav7ka at steve-laptop...
>> On Tue, 01 Mar 2011 08:13:33 -0500, Lars T. Kyllingstad
>> <public at kyllingen.nospamnet> 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
>>>> <jmdavisProg at gmx.com> 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!
>
> Windows also handles files/paths with spaces a hell of a lot better than
> Unix. This, despite the fact that Unix technically allowed them long
> before Windows did. (I don't mean this as OS-bashing.)
I really don't understand what you guys are talking about. If you
encounter a filename with spaces, just enclose it in quotes or escape the
spaces. If you encounter a filename with characters like *, \, etc, just
escape them or enclose the filename in single quotes.
And you only have to do the above when using a command-line shell. I
just tried renaming a file to "c:\foo bar\*.baz" using the GNOME file
manager and it worked perfectly, just like any other name.
>> 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.
Yeah, the only illegal filename characters are '/' and null.
> I would actually feel very good to just simply not support such things.
> If some unix user is going to use such awful filenames they can just
> deal with the consequences. (And I'm *rarely* the kind of person to hold
> such a viewpoint on software development matters.)
If you have a bunch of "reserved characters", that means more special
cases to worry about in code. I say it's better to allow as many
characters as possible.
-Lars
More information about the Digitalmars-d
mailing list