Создание Windows XP Junction - PullRequest
2 голосов
/ 01 июня 2011

Мне нужно создать точку соединения (символьную ссылку на каталог) из C: \ x в C: \ xxx \ yyy \ zzz \ aaa \ bbb, поскольку при добавлении файлов в Windows я использую максимальную длину пути к файлу в Windows XP этот каталог, и я не могу контролировать структуру каталогов.

Я читал, что создание точек соединения не встроено в Windows, поэтому для этого мне понадобится инструмент или библиотека программного обеспечения. Как я могу создать точку соединения в коде? Я смотрел на использование Junction , но юрист сказал мне, что я не могу распространить it.

Моя кодовая база в основном на Java. Я бы предпочел не вводить C / C ++ для этого.

Ответы [ 3 ]

3 голосов
/ 01 июня 2011

Существует инструмент с открытым исходным кодом (лицензия MIT) с именем "ln-win" , который должен соответствовать вашим требованиям:

http://neosmart.net/blog/2011/open-source-100-compatible-ln-for-windows-and-junction-point-library/

https://github.com/NeoSmart/ln-win

Обновление: К сожалению, этот инструмент не работает в Windows XP, для него требуется Windows Vista, Windows 7, Windows 2008 или выше.

2 голосов
/ 02 июня 2011

Марк Б имел правильную идею, но не опубликовал ответ, поэтому я опубликую его. В этой статье о Windows подробно рассказывается об утилите linkd: http://support.microsoft.com/kb/205524/en-us

Linkd.exe

  • Прививает любую целевую папку в версию NTFS для Windows 2000

Этот EXE может быть загружен через Windows Server 2003 Resource Kit Tools: http://www.microsoft.com/downloads/en/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd

Хотя это для Windows 2003, он будет без проблем установлен на Windows XP. Обратите внимание, что этот комплект не совместим с Vista, и в Vista уже есть встроенная утилита (mklink) для создания точек соединения.

После установки можно создать узел:

linkd C:\x C:\xxx\yyy\zzz\aaa\bbb
0 голосов
/ 10 января 2017

Проблема с mklink заключается в том, что mklink.exe отсутствует.(Значение: вы не найдете его в своем пути, потому что он встроен в cmd.exe.) Otoh, что-то вроде

cmd.exe /c mklink /j <junction_to_create> <actual_dir>

может работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...