2017-12-18 219 views
0

是否可以使用Qt更改符号链接的内容?更改符号链接的目标而不删除

静态的QFile::link和非静态的都返回false如果链接名文件路径已经存在。

我只想重定义符号链接。 ln -sf的模拟,但跨平台。

回答

1

简短的回答:第

引述docs

此功能将不会覆盖在文件系统中已存在的实体;在这种情况下,link()将返回false并将error()设置为返回RenameError。

该解决方案相当简单:首先明确删除链接,例如, G。在上使用QFile::remove()链接,然后使用QFile::link()作为目标文件(就像您已经做过的那样)。

顺便说一句,ln -f有没有-s除了调用unlink()什么也没做。这可以方便地在BusyBox sources (line 128)中看到,而在GNU coreutils中则更加混淆。

+0

这是什么,测试我是否能够识别技巧问题?如果你已经知道答案,并认为对后续读者来说很重要,你为什么不写出自己的补充答案?如果你想要其他人回答它,你应该在你的问题中加上这一点,或者更好地创建一个新问题。 – Murphy