是否可以使用Qt
更改符号链接的内容?
如果linkname filepath已经存在,静态QFile::link
和非静态都会返回false
。
我只想重新定位符号链接。 ln -sf
的类比,但跨平台。
简答:不。
引用docs:
此函数不会覆盖文件系统中已存在的实体;在这种情况下,link()将返回false并设置error()以返回RenameError。
解决方案非常简单:首先明确删除链接,e。 G。在链接上使用QFile::remove()
,然后使用QFile::link()
作为目标文件(正如您已经做过的那样)。
顺便说一下,有或没有ln -f
的-s
除了打电话给unlink()
之外别无他法。在BusyBox sources (line 128)可以很方便地看到这一点,而在GNU coreutils中,它有点混淆了。