我不确定这只是 C# 问题还是 Windows 限制。
我有一台运行我的程序的服务器,它在共享文件夹中创建符号链接。我可以通过此链接从具有正常磁盘路径和共享路径的服务器进行访问。
如果我尝试与其他电脑访问同一共享,我将无法访问链接的文件。我确实可以删除重命名...链接,但我无法点击链接。
我已经检查了链接和目标文件的 acl。每个人都应该能够访问。
我使用以下函数:
[DllImport("kernel32.dll")]
static extern bool CreateSymbolicLink(string lpSymlinkFileName, string lpTargetFileName, int dwFlags);
也许我只需要设置一些额外的东西?或者我是否必须更改服务器上的某些 Windows 设置?
抱歉,如果解决方案不是编程问题,但我认为在这里我最有机会获得这方面的帮助。
Edit 1:
我有共享:C:\share
链接:C:\share\file.txt
到目的地:D:\file.txt
如果我从另一台电脑访问共享,我将无法访问 file.txt 的数据。
Tuxera 的这个页面有一个很好的原因描述 http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/
Windows 中也有类似的符号链接概念
远景。符号链接可以重定向到文件或目录
由绝对或相对路径定义。当在远程定义时
文件系统,它们在本地系统上处理,而
目录连接在文件服务器上处理,这使得
当文件服务器无法访问目标时的差异。
CreateSymbolicLink 函数将创建一个由客户端解释的链接。因此,客户端计算机(而不是服务器)正在尝试访问名为 d:\file.txt 的文件,该文件当然在客户端上不存在。
对于窗户,一个交界处或重解析点 http://msdn.microsoft.com/en-us/library/windows/desktop/aa365503%28v=vs.85%29.aspx将在像您的示例这样的服务器上工作。在代码之外创建一个最简单的方法是使用 SysInternals连接工具 http://technet.microsoft.com/en-us/sysinternals/bb896768.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)