我正在尝试创建一个NTFS连接.从cmd行可以使用
junction.exe tool from sysinternals执行此操作.连接的DIR cmd的输出如下所示:
Volume in drive C has no label. Volume Serial Number is C8BC-2EBD Directory of c:\users\cheeso\Documents 03/22/2009 09:45 PM <JUNCTION> My Music [\??\c:\users\cheeso\Music] 05/11/2007 05:42 PM <DIR> My Received Files 03/22/2009 09:46 PM <JUNCTION> my videos [\??\c:\users\cheeso\Videos]
我读到某个地方,连接是Symbolic Links的一个子集.
所以我尝试使用CreateSymbolicLink创建一个连接点.当我这样做,我实际上得到一个符号,而不是一个连接点.
09/09/2009 11:50 AM <SYMLINKD> newLink [.\]
那里也有CreateHardLink.那里的那个文档(也称为“Reparse Points”)是硬链接的一个子集.但我似乎无法让这个电话工作.它完成,但没有硬链接或连接点创建.
我正在使用.NET / C#,导入如下所示:
[Interop.DllImport("kernel32.dll",EntryPoint="CreateSymbolicLinkW",CharSet=Interop.CharSet.Unicode)] public static extern int CreateSymbolicLink(string lpSymlinkFileName,string lpTargetFileName,int dwFlags); [Interop.DllImport("kernel32.dll",EntryPoint="CreateHardLinkW",CharSet=Interop.CharSet.Unicode)] public static extern bool CreateHardLink(string lpFileName,string lpExistingFileName,IntPtr mustBeNull);
我究竟做错了什么?
如何从C#中创建一个连接点?
看起来你可以,还有人在CodeProject上创建了一个库,它有许多在C#中构建的功能,可以使用Junction点.
http://www.codeproject.com/KB/files/JunctionPointsNet.aspx
看起来他实际上正在使用以下DllImport来完成它:
[DllImport("kernel32.dll",CharSet = CharSet.Auto,SetLastError = true)] private static extern bool DeviceIoControl(IntPtr hDevice,uint dwIoControlCode,IntPtr InBuffer,int nInBufferSize,IntPtr OutBuffer,int nOutBufferSize,out int pBytesReturned,IntPtr lpOverlapped);
原文地址:https://www.jb51.cc/windows/371154.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。