Usar funciones para path largos de Windows en Python

Andrés Moya <[email protected]>
Newsgroups gmane.comp.python.general.castellano
Message-ID <[email protected]>
Buenas.

Tengo una pregunta un poco sofisticada, a ver si me podéis ayudar.
Resulta que utilizando una herramienta de Python (FileSystemStorage
para Plone), en un momento dado me he encontrado con el error "[Errno
38] Filename too long". Brujuleando un poco he llegado a este artículo
de Microsoft:

http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

en el que se indica, entre otras cosas, que el API de Win32 tiene una
limitación en sus funciones de ficheros por la que un path completo no
puede ser más largo de 260 caracteres. Y esta herramienta está
llamando a os.path.getmtime(file_path), en una estructura de
directorios que he creado que tiene bastantes niveles y nombres
largos, con lo que el path sobrepasa esa longitud.

Pero el artículo también dice que las funciones del API tienen una
versión (por ejemplo, GetFileAttributes y GetFileAttributesW) que
acepta parámetros en Unicode y que se le puede pasar un path más largo
si se le añade el prefijo "\\?\". Por ejemplo,
"\\?\D:\<path_muy_largo>".

¿Sabéis si hay alguna forma de decirle al módulo os de python que
llame a esas funciones del api? Algo así como
os.path.getmtimeW(u'\\\\?\\" + unicode(file_path))

Ojo: uso Pyton 2.4.

Gracias.

P.D. voy a poner también un ticket a los desarrolladores de la
herramienta para que lo miren, pero si averiguo cómo hacer esto, igual
puedo hacer el parche yo mismo.

-- 
Andrés Moya
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.