[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