2013-08-13 4 views
0

Из этого Java Tutorial here:запрос об удалении символические ссылки с Files.walkFileTree

Удаление файла или каталога

Вы можете удалить файлы, каталоги и ссылки. С символическими ссылками ссылка удаляется, а не цель ссылки. В каталогах каталог должен быть пустым, или удаление не выполняется.

С другой стороны от here:

Вы должны решить, хотите ли вы символические ссылки, которые будут следовать. Если вы удаляете файлы, например, следующие символические ссылки могут быть нецелесообразным. Если вы копируете дерево файлов, вы можете захотеть сделать это . По умолчанию walkFileTree не следует за символическими ссылками.

Говорят, во второй цитате, If you are deleting files, for example, following symbolic links might not be advisable Однако в первой цитаты говорится ясно, что: You can delete files, directories or links. With symbolic links, the link is deleted and not the target of the link.

Если это будет удалить только ссылку, а не цель, поэтому не мешало бы следующие ссылки при удалении при использовании Files.walkFileTree?

Заранее спасибо.

ответ

1

Проблема с символическими ссылками заключается в том, что вы не знаете, куда она отправит вас. Итак, если вы удаляете рекурсивно /etc/home/Rollerball/opt, возможно, вы забыли, что есть ссылка на /bin, о которой вы забыли подумать.

+0

Хорошо, но Files.delete (путь) удаляет только ссылку, а не цель. То, что вы говорите, имеет смысл только в том случае, если «путь», пройденный к visitFile, будет уже ссылкой, разрешенной в цель. Это так? если да, где я могу найти некоторые документы, которые упоминают об этом? – Rollerball

+1

Нет, проблема не в удалении '/ etc/home/Rollerball/opt/link2bin'. Проблема в том, что вы удаляете рекурсивно и следуете ссылке, вы начнете перемещение '/ bin' и удаление там файлов. Как только он будет удален, вы удалите ссылку (сначала удалите файлы, содержащиеся в каталоге, а затем сам каталог). – SJuan76

+0

Спасибо, теперь яснее, до тех пор, пока есть ссылки в папке перед началом деления файлов, если FOLLOW_LINKS включен, он сначала будет следовать всем ссылкам правильно? – Rollerball