Как удалить символические ссылки с phing? - PullRequest
4 голосов
/ 14 февраля 2012

Как удалить символические ссылки с помощью phing, чтобы они работали и в Windows?

Создание символической ссылки легко и работает в кросс-платформенном режиме:

<symlink 
    target="${sharedPath}zend-framework/ZendFramework-${version.zf}/library/Zend/" 
    link="library/Zend" />

Но ни

<delete dir="symlinked folder" />

nor

<delete file="symlinked folder" />

удалит символическую ссылку.

Как это сделать?


Дополнительная информация:

  • Я запускаю phing 2.4.10
  • Phing фактически выводит [delete] путь к удаленному файлу / папке, но символическая ссылка все еще там после этого.поэтому нет сообщения об ошибке и нет явного сбоя.

1 Ответ

2 голосов
/ 28 февраля 2012

Это потому, что символическая ссылка, которую вы создаете в Windows, - это не настоящая символическая ссылка, а файл .LNK. Итак, это каталог, а не ссылка. Таким образом, удаление как файл не будет работать.

Таким образом, вы не можете использовать специальный exec для создания реальных символических ссылок (но их существование зависит от версии и / или привилегий - смотрите подробности о соединении http://technet.microsoft.com/en-us/sysinternals/bb896768) или использовать какой-то страшный метод для проверки, если данный файл на самом деле является файлом .LNK (см. http://www.php.net/manual/en/function.is-link.php#91249)

...