2016-05-20 2 views
2

Я хотел бы переписать символическую ссылку с помощью Go, но я не мог найти, как это сделать.Как переписать символическую ссылку в Go?

Если я попытаюсь создать символическую ссылку, и она уже существует, возвращается ошибка.

Мой код:

err := os.Symlink(filePath, symlinkPath) 
if err != nil { 
    fmt.Println(err) 
} 

Я думаю, символическая должен быть удален, а затем создан заново. Это правильно? Если да, то как я могу отключить символическую ссылку?

ответ

4

Просто убедитесь, что символическая существует и удалить его, прежде чем создавать новый один

if _, err := os.Lstat(symlinkPath); err == nil { 
    os.Remove(symlinkPath) 
} 
+0

тест неправильно, он должен быть: 'ERR = nil' – Skywalker13

+0

Подумайте, прежде чем писать!. os.Stat не будет возвращать ошибку, если файл существует, и это то, что мы здесь проверяем – Vadyus

+0

mmh да, у меня ошибка в моем приложении, он всегда возвращает «нет такого файла или каталога», поэтому он работает для меня с 'err! = nil'. Файл всегда удаляется ... извините за шум – Skywalker13