2013-08-15 3 views
4

Как удалить символическую ссылку с PHP на windows?Удалить символическую ссылку с PHP на Windows

Запуск этого:

mkdir('test'); 
symlink('test', 'test2'); 
unlink('test2'); 

дает следующее сообщение об ошибке:

PHP Warning: unlink(test2): Permission denied in C:\path\to\app\testlink.php on line 4 
PHP Stack trace: 
PHP 1. {main}() C:\path\to\app\testlink.php:0 
PHP 2. unlink() C:\path\to\app\testlink.php:4 

были сделаны каталог и символическая правильно, просто не удаляется.

Продолжительность:

  • PHP 5.4.9 (CLI)
  • для Windows 8
+0

Редактировать: Пропустил бит «Windows». На самом деле, согласно документам, Windows поддерживает его, поэтому он должен работать? – verv

+0

В документах есть несколько примеров Windows, я бы дал страницу прочитанной; http://php.net/manual/en/function.symlink.php – verv

+0

@verv, как я сказал, что он правильно создает символическую ссылку, ее функция 'unlink', которая не работает. – Petah

ответ

4

Хорошо, я понял. Так Ill оставить это здесь для будущей ссылки:

Чтобы удалить символическую ссылку на каталог с помощью функции rmdir:

mkdir('test'); 
symlink('test', 'test2'); 
rmdir('test2'); 

unlink для удаления файлов.

+0

Это работает только для Windows. На * nix вам все равно придется использовать unlink для символических ссылок, независимо от того, на что они указывают. – Tamlyn

+1

@Tamlyn заметить, что вопрос явно говорит, что это проблема с Windows. – Petah

+3

уверен, но я подумал, что стоит обратить внимание на то, что вам нужно взломать платформу, если вы хотите, чтобы ваш код работал на кросс-платформе. Это было не очевидно для меня, и мне пришлось сделать некоторые тесты, чтобы узнать. – Tamlyn

Смежные вопросы