我見過找到用戶路徑的答案,然后將其與 連接desktop,例如:
desktop = os.path.expanduser("~/Desktop")
和
desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop')
但是,當設備具有非默認擴展時,它不起作用:
C:\\Users\\NAME\\OneDrive\\Desktop
或非英語擴展:
C:\\Users\\NAME\\OneDrive\\桌面
我最終將其作為緊急回應:
possible_desktop_ext = ['Desktop', 'OneDrive\\Desktop', 'OneDrive\\桌面']
我絕對可以看到串列在未來呈指數級增長,而且我不太喜歡每次找到新擴展時都這樣做的感覺。
那么檢索桌面路徑的最可靠方法是什么?
uj5u.com熱心網友回復:
這是改編自https://stackoverflow.com/a/626927/5987,我敦促你去看看它并給予它應有的認可。
import ctypes
from ctypes import wintypes, windll
CSIDL_DESKTOP = 0
_SHGetFolderPath = windll.shell32.SHGetFolderPathW
_SHGetFolderPath.argtypes = [wintypes.HWND,
ctypes.c_int,
wintypes.HANDLE,
wintypes.DWORD, wintypes.LPCWSTR]
path_buf = ctypes.create_unicode_buffer(wintypes.MAX_PATH)
result = _SHGetFolderPath(0, CSIDL_DESKTOP, 0, 0, path_buf)
print(path_buf.value)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/513390.html
