我正在寻找一种在 Windows 中打开 Mac 路径的有效方法。我解释一下情况:
我在 Mac 上使用一款软件,该软件链接到位于网络驱动器上的文件。当我在另一台 PC 机上用该软件的 Windows 版本打开同一个“项目”时,我希望它无缝链接到文件。(当然,两台机器都连接到网络驱动器)
假设我的文件在这里(mac 路径):/Volumes/NetworkDrive/Project/Test/MyFile.txt Windows 中的等效路径是:\MyServer\NetworkDrive\Project\Test\MyFile.txt
我想要的是欺骗 Windows,无论是在注册表、环境变量还是任何类似的东西中,“覆盖”任何软件,因此“/Volumes/NetworkDrive”将被理解为“\MyServer\NetworkDrive”
这样,任何软件中的任何文件都可以打开。
我希望它的工作方式与 hosts 文件对 ip 地址的工作方式非常相似(为服务器创建别名和重新路由)
或者 - 可以通过安装假文件夹来实现吗?这个技巧可以在 Mac 或 PC 上实现,只要它有效!
谢谢 !
答案1
您的要求在 Win32 中根本不可能实现。您只能通过子系统(例如 SUA)或仿真层(例如 Cygwin)来实现这一点。
正斜杠和反斜杠在这里不是问题,因为 Windows 可以很好地理解它们。
Windows 上(或者说 Win32 子系统)没有解决方案能够为所有程序提供您想要的功能。虽然您可以编写一个 shell 扩展来让 Windows Explorer 按照您想要的方式显示,但命令提示符和其他程序不会有任何线索,因为 shell 命名空间几乎局限于 Explorer(以及选择实现它的其他文件管理工具)。
最接近的方法是共享(通过 Samba)/Volumes/NetworkDrive
,将您的机器重命名为,Volumes
并将共享命名为NetworkDrive
。这样,在前面加上另一个斜杠(或反斜杠),即\\Volumes\NetworkDrive
,将产生接近您想要的结果。
虽然 Unixoid 系统(例如 Mac)只有一个根,但 Win32 子系统(它是所有现代 Windows 版本中用户可见的部分)有多个根(每个驱动器号)。操作系统本身有一个“对象根”的概念(与 Unixoid 系统上的工作原理非常相似),但这超出了问题的范围(如果您好奇,请阅读“Windows Internals”并修改 WinObj系统内部)。