在不删除的情况下更改符号链接的目标
Change target of symlink without deletion
是否可以使用 Qt
更改符号链接的内容?
静态 QFile::link
和非静态 return false
如果链接名文件路径已经存在。
我只想重定向符号链接。 ln -sf
的类似物,但跨平台。
简答:否
引用docs:
This function will not overwrite an already existing entity in the file system; in this case, link() will return false and set error() to return RenameError.
解决方案相当简单:首先明确删除 link,e。 G。在 link 上使用 QFile::remove()
,然后对目标文件使用 QFile::link()
(就像您已经做的那样)。
顺便说一句,有或没有 -s
的 ln -f
除了调用 unlink()
之外什么都不做。这可以在 BusyBox sources (line 128), while in the GNU coreutils 中方便地看到它有点模糊。
是否可以使用 Qt
更改符号链接的内容?
静态 QFile::link
和非静态 return false
如果链接名文件路径已经存在。
我只想重定向符号链接。 ln -sf
的类似物,但跨平台。
简答:否
引用docs:
This function will not overwrite an already existing entity in the file system; in this case, link() will return false and set error() to return RenameError.
解决方案相当简单:首先明确删除 link,e。 G。在 link 上使用 QFile::remove()
,然后对目标文件使用 QFile::link()
(就像您已经做的那样)。
顺便说一句,有或没有 -s
的 ln -f
除了调用 unlink()
之外什么都不做。这可以在 BusyBox sources (line 128), while in the GNU coreutils 中方便地看到它有点模糊。