更改符号链接的目标而不删除

问题描述 投票:0回答:1

是否可以使用Qt更改符号链接的内容?

如果linkname filepath已经存在,静态QFile::link和非静态都会返回false

我只想重新定位符号链接。 ln -sf的类比,但跨平台。

qt symlink qfile qfileinfo
1个回答
1
投票

简答:不。

引用docs

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

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

顺便说一下,有或没有ln -f-s除了打电话给unlink()之外别无他法。在BusyBox sources (line 128)可以很方便地看到这一点,而在GNU coreutils中,它有点混淆了。

© www.soinside.com 2019 - 2024. All rights reserved.