
On 26.10.2011 16:19, Sergey Cheban wrote:
26.10.2011 14:59, Alf P. Steinbach пишет:
However the MAX_PATH issue is not really an issue in practice.
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.
Please note that the following filename is very close to the limit: bin.v2\libs\program_options\build\msvc-10.0\release\address-model-64\architecture-x86\link-static\runtime-link-static\threading-multi\libboost_program_options-vc100-mt-s-1_47.lib
d:\> set LONGNAME=bin.v2\libs\program_options\build\msvc-10.0\release\address-model-64\architecture-x86\link-static\runt ime-link-static\threading-multi\libboost_program_options-vc100-mt-s-1_47.lib d:\> for %f in (%LONGNAME%) do @set SHORTNAME=%~sf & echo %~sf d:\bin.v2\libs\PROGRA~1\build\msvc-10.0\release\ADDRES~1\ARCHIT~1\LINK-S~1\RUNTIM~1\THREAD~1\LIBBOO~1.LIB d:\> echo function print(s) { WScript.StdOut.WriteLine( s ); } >x.js d:\> echo print( "long name is " + "%LONGNAME%".length + " characters." ) >>x.js d:\> echo print( "short name is " + "%SHORTNAME%".length + " characters." ) >>x.js d:\> cscript /nologo x.js long name is 167 characters. short name is 94 characters. d:\> _ It's about 2/3 of the way (as I recall MAX_PATH is 260 or thereabouts). The short name is about 1/3 of the way.
I even had real problems with building Boost from the not-so-long subfolder of the my home folder.
Yes, evidently those who thought it was a good idea to encode file properties as nested folders, were used to a system supporting arbitrarily long paths as well as symlinks. I.e. *nix. While Windows, in spite of early Posix 0.9 support, didn't support symlinks until the latest version, Windows 7. Perhaps, in addition to adding g++ support in Boost.Filesystem, it might be a good idea if Someone(TM) told whomever is responsible for that enthusiastic folder nesting, that some other scheme might fit better in the non-*nix world? Or even in *nix... ;-) <g> Cheers & hth., - Alf