Boost logo

Boost :

Subject: Re: [boost] Making Boost.Filesystem work with GENERAL filenames with g++ in Windows (a solution)
From: Yakov Galka (ybungalobill_at_[hidden])
Date: 2011-10-26 11:40:13


On Wed, Oct 26, 2011 at 15:05, Alf P. Steinbach <
alf.p.steinbach+usenet_at_[hidden]> wrote:

> On 26.10.2011 14:17, Yakov Galka wrote:
> [snip argumentative noise]
>
> On Wed, Oct 26, 2011 at 12:59, Alf P. Steinbach<
>>
>>>
>>> The *only* uses I have seen of paths longer than MAX_PATH, have been
>>> silly
>>> script-kiddies trying to create problems for people running FTP servers.
>>> And
>>> that's because the ordinary tools can't handle them, thus, difficult to
>>> remove the script-kiddie's nested folders. Conversely, as a serious
>>> software
>>> developer one should stay well away from such paths.
>>>
>>
>>
>> This offends me. I'm facing the MAX_PATH limitation at my work. If you
>> develop nothing more than desktop apps that interact directly with the
>> user,
>> then please don't infer from this that others don't need it either.
>> MAX_PATH
>> is a problem in a large scale systems where you have enormous amounts of
>> data.
>>
>
> You don't need such long paths for any size of data.
>

So what are the alternatives? Let's see...:

1) Hack the software to use shorter non-descriptive names.
2) Maintain a database of long paths -> short unique ids
3) Buy some commercial database system...

All of these increase software complexity on the high-level, and aren't
applicable if some of the software is out of my control. Furthermore, why
should I do these if the native filesystem suits my needs just fine? And in
the context of boost.filesystem, if I write a cross-platform app that uses
long paths on linux, I expect the filesystem library to handle them on
windows correctly.

On Wed, Oct 26, 2011 at 17:18, Alf P. Steinbach <
alf.p.steinbach+usenet_at_[hidden]> wrote:

>
> d:\> cscript /nologo x.js
> long name is 167 characters.
> short name is 94 characters.
>

Your script must be wrong, it didn't count the backslashes. It's 178
characters.

On Wed, Oct 26, 2011 at 17:30, Alf P. Steinbach <
alf.p.steinbach+usenet_at_[hidden]> wrote:

>
> E.g., "con" is a reserved device name (the console) and cannot usually be
> used to name a file or folder. But \\.\ or \\?\, I can't remember which, is
> like a "raw path". So,
>

It's \\?\.

> Of course I shouldn't really have shown such trick here, where I have
> impression that perhaps script kiddies lurking, but hey, it's my birthday.
> :-)
>

Happy birthday then :).

-- 
Yakov

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk