Как найти и удалить символьную ссылку

Аватара пользователя
TERMINAL

Как найти и удалить символьную ссылку

Сообщение TERMINAL »

Здравствуйте, используется система Windows 7 и мне нужно найти символьные ссылки и удалить их для создания новых путей. Возможно ли это в AutoIt ?
Аватара пользователя
TERMINAL

Re: Как найти и удалить символьную ссылку

Сообщение TERMINAL »

Цитата TERMINAL:



Возможно ли это в AutoIt ?
Как найти и удалить символьную ссылку




Это возможно и без AutoIt:
Junction
.
Аватара пользователя
TERMINAL

Re: Как найти и удалить символьную ссылку

Сообщение TERMINAL »

Iska, В AutoIt при копировании папки можно определить-существуют ли в ней символьные ссылки, если ДА, то не копировать. У меня проблема-копирую папку средствами AutoIt и в итоге копируются не символьные ссылки (которые потом изменять нужно на новый путь), а целые папки.
Аватара пользователя
TERMINAL

Re: Как найти и удалить символьную ссылку

Сообщение TERMINAL »

Цитата TERMINAL:



В AutoIt при копировании папки можно определить-существуют ли в ней символьные ссылки,
Как найти и удалить символьную ссылку




Не вижу такого:
Function DirCopy
. О какой функции копирования папки идёт речь?
Аватара пользователя
Iska

Re: Как найти и удалить символьную ссылку

Сообщение Iska »

Хочу перенести папку с С:\Users\test\Documents в D:\Users\test\Documents, и в С:\Users\test\Documents находятся маркерные ссылки, Мои видеозаписи, Мои рисунки, Моя музыка, которые после копирования превращаются в папки.
Аватара пользователя
TERMINAL

Re: Как найти и удалить символьную ссылку

Сообщение TERMINAL »

Хочу перенести папку с С:\Users\test\Documents в D:\Users\test\Documents, и в С:\Users\test\Documents находятся маркерные ссылки, Мои видеозаписи, Мои рисунки, Моя музыка, которые после копирования превращаются в папки.
Аватара пользователя
Iska

Re: Как найти и удалить символьную ссылку

Сообщение Iska »

А, так фразу «при копировании папки можно определить» следует понимать как «хотелось бы иметь возможность при копировании папки».



Symbolic Link Effects on File Systems Functions (Windows)




TERMINAL, возьмите какой-нибудь OpenSource'ный проект, где имеется реализация функций копирования с поддержкой точек повторного подключения (например, файловый менеджер Far Manager (
Far Manager Official Site : исходный*код
)) и посмотрите, как сие там реализовано.




читать дальше »



Цитата:





Код:

Код: Выделить всё

╔════════════════════════════════════════════════════════════════════ Помощь - FAR ════════
║ Копирование: правила
╟──────────────────────────────────────────────────────────────────────────────────────────
║  При копировании/перемещении папок и символических ссылок соблюдаются следующие правила.
║
║  Копирование символической ссылки
║
║  Если включена опция "Копировать содержимое символических ссылок"
║  или источник или приёмник - сетевые диски, то в приёмнике
║  создаётся папка и в неё копируется содержимое ссылки-источника
║  (для вложенных ссылок рекурсивно).
║
║  Если опция "Копировать содержимое символических ссылок" выключена,
║  и источник и приёмник - локальные диски, то в приёмнике создаётся
║  связь или символическая ссылка, в зависимости от типа источника.
║
║  Перемещение символической ссылки
║
║  Если включена опция "Копировать содержимое символических ссылок"
║  или источник или приёмник - сетевые диски, то в приёмнике
║  создаётся папка и в неё копируется содержимое ссылки-источника
║  (для вложенных ссылок рекурсивно). Сама ссылка в источнике
║  удаляется.
║
║  Если опция "Копировать содержимое символических ссылок" выключена,
║  и источник и приёмник - локальные диски, то ссылка-источник просто
║  переносится. Рекурсивный спуск по дереву не производится.
║
║  Перемещение каталога, содержащего символические ссылки
║
║  Если источник и приёмник - локальные диски, то каталог просто
║  перемещается.
║
║  Если источник или приёмник - сетевые диски, то независимо от
║  состояния опции "Копировать содержимое символических ссылок"
║  в приёмнике создаётся папка и в неё копируется содержимое
║  ссылки-источника (для вложенных ссылок рекурсивно).
║  Сама ссылка в источнике удаляется.
║
Аватара пользователя
TERMINAL

Re: Как найти и удалить символьную ссылку

Сообщение TERMINAL »

Iska, Так мне Фар и другие программы не нужны, хочу сделать это программно на AutoIt !
Аватара пользователя
TERMINAL

Re: Как найти и удалить символьную ссылку

Сообщение TERMINAL »

Цитата Iska:



смотрите код того же Far Manager'a на С
Как найти и удалить символьную ссылку




Низнаю как код Far`а просмотреть, одни dll-ки.
Аватара пользователя
TERMINAL

Re: Как найти и удалить символьную ссылку

Сообщение TERMINAL »

Far Manager Official Site : исходный*код
Исходный код Far Manager
copy.cpp
+
flink.cpp
.



Можете разобраться и сами, прочитав:
Reparse Points and File Operations (Windows)
и
Symbolic Link Effects on File Systems Functions (Windows)
, создать точки повторной обработки разного типа и поиграться с ними, вызывая из AutoIt WinAPI функции копирования с разными флагами, пока не добьётесь нужного поведения.



Мне, правда, непонятно, почему Вы не хотите просто воспользоваться mklink/Junction для изложенных выше:


Цитата TERMINAL:



Хочу перенести папку с С:\Users\test\Documents в D:\Users\test\Documents, и в С:\Users\test\Documents находятся маркерные ссылки, Мои видеозаписи, Мои рисунки, Моя музыка, которые после копирования превращаются в папки.
Как найти и удалить символьную ссылку




целей.
Ответить

Вернуться в «AutoIt»