在.NET中,如何在NTFS中创建连接,而不是Symlink?

前端之家收集整理的这篇文章主要介绍了在.NET中,如何在NTFS中创建连接,而不是Symlink?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建一个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);
原文链接:/windows/371154.html

猜你在找的Windows相关文章