os.path.getmtime on windows, error: 206 - path or extension too long

mynthon mynthon1 at gmail.com
Wed Jan 21 08:13:35 EST 2009


On Jan 21, 11:50 am, mynthon <mynth... at gmail.com> wrote:
> I have very long path on windows and i get error when try to get
> modification time. So i tried do chdir path and then get file. It now
> gives me error that file doesn't exists
>
> # code
> def getmtimeWIN32(p):
>     mycwd = os.getcwd()
>
>     if p.startswith('\\\\?\\'):
>         p = p.replace('\\\\?\\', '', 1)
>
>     p = os.path.splitdrive(p)
>     r = p[0] # root - dir name
>     p = p[1]
>     p = os.path.split(p)
>     f = p[1] # filename
>     d = p[0]
>     l = d.split('\\');
>
>     if r != '': # if root is not empty change to root (it not works
> when script is on other partition than file)
>         os.chdir('/')
>
>     for i in l:
>         if i != '':
>             os.chdir(i)
>             #print i
>     print os.getcwd()
>     os.path.getmtime(f)
>     os.chdir(mycwd)
> # /code
>
> it works for other files so i suppose it is not my fault. I know there
> is a win32 module but i can't find any documentation for it (what is
> the purpose to create app without docs?). Any idea?
>
> I searched google but there where only 2 options. Use chdir (not
> working) or use win32api (where is no documentation).
>
> (python 2.5)


ok, what ive found:

os.chdir('very_long_path')
# works

os.listdir('very_long_path')
# gives:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: listdir() argument 1 must be (buffer overflow), not str

os.chdir('very_long_path')
os.listdir('.')
#works

os.chdir('very_long_path')
os.path.getmtime(os.listdir('.')[0])
#throws exception (path not exists)

os.chdir('very_long_path')
open(os.listdir('.')[0])
#throws exception (path not exists)









More information about the Python-list mailing list