Как получить длинный путь к файловой системе из python на Windows


Это возвращает мне короткий путь (соглашение DOS) (на Windows):

import tempfile
tempDir = tempfile.mkdtemp()
print tempDir

Output >>> c:usersadmini~1appdatalocaltemptmpf76unv

Обратите внимание на admini~1.

Как я могу получить/преобразовать это в полный путь? например: C:usersadministratorappdata...

2 7

2 ответа:

Пожалуйста, попробуйте следующий код (обновлено):

from ctypes import create_unicode_buffer, windll
BUFFER_SIZE = 500
buffer = create_unicode_buffer(BUFFER_SIZE)
get_long_path_name = windll.kernel32.GetLongPathNameW
get_long_path_name(unicode(short_path_name), buffer, BUFFER_SIZE)
long_path_name = buffer.value

Надеюсь, это поможет. Пожалуйста, обратитесь к http://mail.python.org/pipermail/python-win32/2008-January/006642.html

tempDir = win32file.GetLongPathName(tempDir)