[python] Kratka DOSova jmena (bylo SQLite Windows)

Petr Prikryl PrikrylP na skil.cz
Pátek Únor 24 08:29:48 CET 2006


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

pepr



Další informace o konferenci Python