加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在没有Pywin32的Python中检测Vista / 7上的符号链接(mklink)

发布时间:2020-12-13 22:36:07 所属栏目:Windows 来源:网络整理
导读:目前,buildout recipe collective.recipe.omelette在所有版本的 Windows上使用junction.exe来创建符号链接.但是,默认情况下,junction.exe不附带Windows,最重要的是不支持创建符号链接到文件(仅限目录),导致相当多的 Python包出现问题. 在NT6(Vista和7)上,现
目前,buildout recipe collective.recipe.omelette在所有版本的 Windows上使用junction.exe来创建符号链接.但是,默认情况下,junction.exe不附带Windows,最重要的是不支持创建符号链接到文件(仅限目录),导致相当多的 Python包出现问题.

在NT6(Vista和7)上,现在有mklink实用程序,它不仅默认出现,而且还能够为文件和目录创建符号链接.我想更新collective.recipe.omelette以使用它(如果可用)并且已经这样做了,除了一个简单的功能;检测文件或文件夹是否实际上是符号链接.由于这是一个小的构建配方,在我看来需要Pywin32有点太多了(除非setuptools可以某种方式只在Windows上下载它?).

目前在Windows上,煎蛋的功能是调用文件夹上的junction.exe,然后grep响应“替换名称:”但我找不到任何简单的mklink.

我能想到的唯一方法是在目录中调用“dir”,然后逐行查看响应“< SYMLINK>”和同一行上的文件夹/文件名.当然有更好的东西?

解决方法

你能用ctypes来访问各种所需的函数和结构吗? this patch,目前正在讨论中,旨在为Vista和Windows 7下的模块操作系统添加符号链接功能 – 但它不会在Python 2.7和3.2之前,所以等待(以及最新版本的需求)最终来的可能会太久;一个基于ctypes的解决方案可能会让你度过难关,补丁中的代码显示了C中的代码(基于ctypes的Python编程只比C中的编程要困难一些).

除非有人为此目的已经发布了一些其他的独立实用程序,例如junction.exe,我不会看到其他可行的方法(直到该补丁最终使其成为未来的Python的stdlib),除了使用ctypes,Pywin32或dir之外,还有你已经排除了这三个选项的最后两个……! – )

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读