Petr Prikryl wrote:
(Dík, geone, za nakopnutí ;)

Radek Svarz napsal(a):
[...] zkuste pouzit "short DOS name" cestu. Ta nabodenicka nema.
pepr
Jenže takovou cestu si nemohu spolehlivě uschovat, protože
Windows nezaručí, že se za chvíli (za určitých okolností)
nebude jmenovat jinak.

Vyzkoušejte:

a.py
---------------------------------------------------------
import os
import win32api

def q(text):
    return "'" + text + "'"

os.mkdir('aaaaaaaaaaaaA')
os.mkdir('aaaaaaaaaaaaB')
os.mkdir('aaaaaaaaaaaaC')
os.mkdir('aaaaaaaaaaaaD')

for item in os.listdir('.'):
    if os.path.isdir(item):
        print q(item), q(win32api.GetShortPathName(item))

os.rmdir('aaaaaaaaaaaaB')
os.rmdir('aaaaaaaaaaaaC')
os.rmdir('aaaaaaaaaaaaD')

print '-' * 70

os.mkdir('aaaaaaaaaaaaE')
os.mkdir('aaaaaaaaaaaaF')
os.mkdir('aaaaaaaaaaaaG')
os.mkdir('aaaaaaaaaaaaH')

lst = os.listdir('.')
for item in lst:
    if os.path.isdir(item):
        print q(item), q(win32api.GetShortPathName(item))

for item in lst:
    if os.path.isdir(item):
        os.rmdir(item)
---------------------------------------------------------

V mém případě to vrací
C:\tmp\a>python a.py
'aaaaaaaaaaaaA' 'AAAAAA~1'
'aaaaaaaaaaaaB' 'AAAAAA~2'
'aaaaaaaaaaaaC' 'AAAAAA~3'
'aaaaaaaaaaaaD' 'AAAAAA~4'
---------------------------
'aaaaaaaaaaaaA' 'AAAAAA~1'
'aaaaaaaaaaaaE' 'AAAAAA~2'
'aaaaaaaaaaaaF' 'AAAAAA~3'
'aaaaaaaaaaaaG' 'AAAAAA~4'
'aaaaaaaaaaaaH' 'AABDBB~1'

Takže například, když si někde schovám AAAAAA~2, nevím v budoucnu, jakému adresáři to vlastně odpovídá. Raději by se to mělo řešit jinak.

Na prevod zpet se pak muze pouzit api fce GetLongPathName:

    >>> import win32api
    >>> short = win32api.GetShortPathName('c:/program files')
    >>> win32api.GetLongPathName(short)
   'c:/Program Files'
    >>>

Leo
pepr
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python


--
----
Leos Pol
SW Engineer
Radiante Corp.

If it can be imagined,
we can implement it


_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem