Я пытаюсь создать соединение NTFS. Из строки cmd я могу это сделать, используя инструмент junction.exe из 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]
Я где-то читал, что Junctions - это подмножество символических ссылок.
Поэтому я попытался использовать CreateSymbolicLink, чтобы создать соединение. Когда я это делаю, я фактически получаю Symlink, а не соединение.
09/09/2009 11:50 AM <SYMLINKD> newLink [.\]
Существует также CreateHardLink. Док там говорит, что переходы (ака "точки повторной обработки" ) являются подмножеством жестких ссылок. но я не могу заставить этот звонок работать. Он завершается, но нет жесткой ссылки или соединения.
Я использую .NET/С#, и импорт выглядит следующим образом:
[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);
Что я делаю неправильно?
Как создать соединение из С#?