我正在从windows中的subst文件夹运行python脚本:
c:\MyFolder\Tmp\Code\subst O: .
O:\script.pyscript.py正在运行getcwd (和abspath)命令,它需要真正的文件夹名,但它却显示了O:。
有没有办法获得真正的文件夹名(不运行subst命令并迭代驱动器)并使用getcwd替代方案?
发布于 2017-10-30 09:33:28
由于将评论标记为已接受的答案是不可能的,我将引用@eryksun的评论:
工作目录的本机路径将类似于"\Device\HarddiskVolume2\MyFolder\Tmp\Code“。如果您通过subst驱动器"O:“打开这个目录的句柄并调用GetFinalPathNameByHandle,Windows可以重构卷GUID路径或DOS路径。它通过NtQueryObject和NtQueryInformationFile获取本机设备和文件路径。然后打开挂载点管理器"\ device \MountPointManager“,查询从本机设备路径到”drive {GUID}“名称或DOS逻辑驱动器号(或如果没有驱动器号挂载的文件夹)的映射。 在Python3中,GetFinalPathNameByHandle被包装为os.path._getfinalpathname (只用于获得最终的DOS路径)。它是pathlib.Path.resolve使用的
非常感谢,谢谢。
https://stackoverflow.com/questions/46998658
复制相似问题