Windows/win32all, unicode and long filenames

Kevin Ollivier kevino at tulane.edu
Sun Aug 28 01:20:13 EDT 2005


On Sat, 27 Aug 2005 23:30:46 +0000, Neil Hodgson wrote:

> 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.

Thanks for the tips! I had heard of ctypes but it never crossed my mind it
was for accessing functions from shared libraries. :-) I'll try both of
your tips out, and one of them should resolve the problem.

Kevin

>     Neil




More information about the Python-list mailing list