Windows/win32all, unicode and long filenames

Neil Hodgson nyamatongwe+thunder at gmail.com
Sat Aug 27 19:30:46 EDT 2005


Kevin Ollivier:

> On Windows, it's very common to have a string of long directories in the
> pathname for files, like "C:\Documents and Settings\My Long User Name\My
> Documents\My Long Subdirectory Name\...". For a wxPython application I'm
> working on, this has actually caused me to run into what appears to be
> Python's pathname length limit for opening files. (247 chars on Win) Yes,
> I can hear people saying "yipes!" but this stuff does happen sometimes on
> Windows. :-)

     The Win32 API restricts path arguments to 260 characters. Longer 
paths can be passed to wide character functions by using a "\\?" prefix.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/naming_a_file.asp
     This may work from Python although I haven't tested it.

> My first inclination was to use win32api.GetShortPathName(mypath),
> ...
> Looking at the pyWin32 sources, it does look like only the ASCII version
> of this function exists, which suggests that for now this route is a
> dead-end.

    All APIs can be accessed through ctypes.

    Neil



More information about the Python-list mailing list