#1598 Limited path size

obsolete: 8.3.2

Maybe this isn't bug, but annoying feature -
under Windows path size for all file operations
limited to about 250 characters, as result, i can't
work with files, placed in deep directory trees, with
path longer than 250 characters.
Of course, on pure WinAPI (C/C++) i can work with long
paths without any problems.


  • Vince Darley

    Vince Darley - 2001-08-23

    Logged In: YES

    It would have been helpful to have a more precise example
    of the problem, but fortunately it is easyish to
    reproduce. The attached script can show at least one bug
    of this type. It eventually fails with:

    can't create
    directory "C:/Apps/dir0.8519/dir0.9923/dir0.1220/dir0.6213/d
    ir0.6886/dir0.4262/dir0.1771": file name too long

    Since you seem to know something of the Win32 API's
    involved here, Sergey, perhaps you can look at the APIs
    used (they are in tclWin32dll.c, where either some ascii or
    unicode api's are loaded into a lookup table, from which
    they are then called in, say, tclWinFCmd.c or tclWinFile.c)
    and suggest what is wrong with them. I don't believe Tcl
    itself has any filename length limitations, so I think the
    problem could be we are using older Win32 APIs which have
    such limitations.

  • Vince Darley

    Vince Darley - 2001-08-23

    script showing the bug (on Win2000 anyway)

  • Don Porter

    Don Porter - 2001-08-23

    Logged In: YES

    I think an example of some Tcl code
    failing to do what you expect would
    help clarify this report, and help
    locate what code needs changing.

    Also, what specific Windows platform
    are we talking about?

  • Jeffrey Hobbs

    Jeffrey Hobbs - 2001-08-23

    Logged In: YES

    Thas to be related in some way to an internal 260 (seems
    like 260 to me) char limit. On Win2K, you can try this:

    for { set i 100 } { $i < 500 } { incr i } {
    set str [string replace [string repeat a $i] end-3 end $i]
    if {[catch {close [open $str w]}]} {
    puts "stopped at $i, allowed \ [expr {[string length [pwd]]+$i-1}] chars total"

    For me that returns:
    stopped at 244, allowed 259 chars total

    (you have to allow for [pwd] size). I then went into
    explorer to see if I could edit the file name to be longer -
    I couldn't! I could remove and add a char, but it
    wouldn't let me go longer. That indicates a system limit.

  • Sergey Kuzmin

    Sergey Kuzmin - 2001-08-23

    Logged In: YES

    Really, under windows there are problems with names of
    files in length close to boundary 260 characters. I rewrite
    the test, also have broken off - as was fairly remarked,
    these problems actually arises at a winapi level. All of an
    apology for early bugreport, though I have written
    about "maybe". :)

  • Vince Darley

    Vince Darley - 2001-08-24
    • status: open --> closed-wont-fix
  • Vince Darley

    Vince Darley - 2001-08-24

    Logged In: YES

    Unless or until new Win32 api's are available/used this bug
    can't be fixed.

    I'll add note to this fact to filename.n, and will close
    the bug (p.s. I don't see a 'maybe' in "Of course, on pure
    WinAPI (C/C++) i can work with long paths without any


Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks