2012-07-10 13 views
6

上のpythonから長いファイルシステムパスを取得するにはどのようにこれは私の短いパス(Windowsの場合)(DOSの慣習)を返します。のWindows

これをフルパスで取得/変換するにはどうすればよいですか?例えばC:

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 

・ホープ、このことができます:\ユーザー\管理者\ APPDATA ...

+0

を参照してください。 –

+1

@AndyArismendiなぜ完全なパスが必要ですか? –

+0

私の目的のために@AshwiniChaudhary私はサードパーティ製のモジュールをトラブルシューティングしていて、完全なパスを投げたいと思っていましたが、長いパスを得るための「組み込み」の方法は見つかりませんでした。 1)パスを表示する、2)[Windows 8.3名前の作成を無効にする](http://support.microsoft.com/kb/121007)。 –

答えて

9

次のコード(更新)を試してみてください。私はos.path` `でメソッドの束を試みたが、何も私のためにそれをやっていなかった@Levon http://mail.python.org/pipermail/python-win32/2008-January/006642.html

+0

可能な回答はhttp://stackoverflow.com/questions/1587816/is-it-possible-to-access-the-getlongpathname-win32-api-in-pythonでも利用できます –

+0

それはトリックです。ありがとう! –

4
tempDir = win32file.GetLongPathName(tempDir)