Hi all, 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. :-)
My first inclination was to use win32api.GetShortPathName(mypath), which worked fine until I had an unicode pathname with non-ascii characters in it. Those give me the 'oridnal not in range' errors performing an ascii encode, meaning that GetShortPathName doesn't handle unicode objects. The problem is that I'm working with Unicode filenames that contain characters that are not only non-ascii characters, but characters not in the current locale's character set as well. So I can't just 'down convert' from a unicode object to a string object in the current character set without corrupting the filename. 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. The only other solution I could think of is to call os.chdir(long_pathname) and open the file using a filename relative to long_pathname instead of an absolute path. But I was wondering if there was another solution, preferably one that doesn't require me to muck with the current directory, and I was also wondering if there was a simple way to get one or both of the above limitations removed. :-) Thanks in advance for any help, Kevin -- http://mail.python.org/mailman/listinfo/python-list