前提・実現したいこと
pythonとtkinterでwindows用のGUIを書いています
エディタはvscodeで,最近ATOMから乗り換えたばかりです
ロングパスを受けたら弾くという処理があるのですが
vscodeでコードを実行すると,ロングパスが自動で短縮されてしまうので,機能しません
ロングパスを短縮しない という設定はどうすればよいのでしょうか
(というかこれどこの機能なのですか? vscode? ターミナル?)
OSはwindows10 pythonは最新版
レジストリのLongPathsEnabledは0にしています
※追記
windowsのMAX_PATHを超えた長さのpath objectを受け取ると
C:/Users/xxxxx/Desktop/新しい1/TEST1
内部でこのように短縮しているようです. len = 37 は固定っぽいです
例えば簡単にlen(str(p)) >= 260 としたとき 259 の次が37になるので判定できないのです
ターミナルでも出力でもrunner使っても同じように短縮されます
該当のソースコード
python
1 2def on_load(self): 3 if not(ret := tkfd.askdirectory()): 4 return 5 6 # ロングパスのときATOMではFalseになるが,vscodeは短縮してTrueにしてしまう 7 if not (src := pathlib.Path(ret)).exists(): 8 return 9
ロングパスだめな環境に配布したいので,手元でもロングパスはコケて欲しいのです
回答1件
あなたの回答
tips
プレビュー