Символьные ссылки на окнах?

За пределами Вашей техники почему бы не использовать стандартный класс Java JarFile для получения ссылок Вы хотите? Оттуда большинство Ваших проблем должно уйти.

38
задан 19 September 2009 в 02:44
поделиться

2 ответа

Файловая система NTFS имеет точки соединения, я думаю, вы можете использовать их вместо них, вы можете использовать python win32 API модуль для этого, например

import win32file

win32file.CreateSymbolicLink(fileSrc, fileTarget, 1)

Если вы не хотите полагаться на модуль win32API, вы всегда можете использовать ctypes и напрямую вызвать CreateSymbolicLink Win32 API, например

import ctypes

kdll = ctypes.windll.LoadLibrary("kernel32.dll")

kdll.CreateSymbolicLinkA("d:\\test.txt", "d:\\test_link.txt", 0)

MSDN ( http: // msdn.microsoft.com/en-us/library/aa363866(VS.85).aspx) говорит, что минимально поддерживаемый клиент - Windows Vista

Вдобавок : Это также работает с каталогами (укажите, что с третий аргумент). С поддержкой юникода это выглядит так:

kdll.CreateSymbolicLinkW(UR"D:\testdirLink", UR"D:\testdir", 1)

также см. Создание точки соединения NTFS в Python

37
ответ дан 27 November 2019 в 03:22
поделиться

Проблема заключается в том, как объяснялось, например, здесь , что собственная поддержка Windows функциональности символических ссылок варьируется в разных версиях Windows, так что, например, в Vista (с большим количеством работы ) вы можете получить больше функциональности, чем в XP или 2000 (ничего, AFAIK в других версиях win32). Или вместо этого у вас могут быть ярлыки, которые, конечно, имеют свой собственный набор ограничений и не «в действительности» эквивалентны символическим ссылкам Unix. Итак, вы должны точно указать, какие функции вам нужны, сколько из них вы готовы пожертвовать на алтарь работы cross-win32 и т. Д. - ЗАТЕМ мы можем решить, как реализовать выбранный вами компромисс в терминах of ctypes или win32all вызывает ... это в некотором смысле наименьшее из них.

11
ответ дан 27 November 2019 в 03:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: