有谁知道从Python跨版本的win32进行符号链接(symbolic link)的读取/读取的方法吗?理想情况下,应该有最少数量的平台特定代码,因为我需要我的应用程序是跨平台的。

最佳答案

NTFS文件系统具有连接点,我想您可以改用它们,您可以为此使用python win32 API模块。

import win32file

win32file.CreateSymbolicLink(fileSrc, fileTarget, 1)

如果您不想依赖win32API模块,则可以始终使用ctypes并直接调用CreateSymbolicLink win32 API,例如
import ctypes

kdll = ctypes.windll.LoadLibrary("kernel32.dll")

kdll.CreateSymbolicLinkA("d:\\test.txt", "d:\\test_link.txt", 0)

MSDN(http://msdn.microsoft.com/en-us/library/aa363866(VS.85).aspx)说,最低支持的客户端是Windows Vista

另外:这也适用于目录(用第三个参数表示)。有了unicode支持,它看起来像这样:
kdll.CreateSymbolicLinkW(UR"D:\testdirLink", UR"D:\testdir", 1)

也看到
Create NTFS junction point in Python

10-07 12:52
查看更多