【发布时间】:2017-12-18 11:01:40
【问题描述】:
是否可以使用Qt 更改符号链接的内容?
如果链接名文件路径已存在,则静态QFile::link 和非静态都返回false。
我只想重新定位符号链接。 ln -sf 的类似物,但跨平台。
【问题讨论】:
标签: qt symlink qfile qfileinfo
是否可以使用Qt 更改符号链接的内容?
如果链接名文件路径已存在,则静态QFile::link 和非静态都返回false。
我只想重新定位符号链接。 ln -sf 的类似物,但跨平台。
【问题讨论】:
标签: qt symlink qfile qfileinfo
简短回答:不。
引用docs:
这个函数不会覆盖文件系统中已经存在的实体;在这种情况下,link() 将返回 false 并将 error() 设置为返回 RenameError。
解决方案相当简单:首先明确删除链接,例如。 G。在链接上使用QFile::remove(),然后对目标文件使用QFile::link()(就像你已经做过的那样)。
顺便说一句,ln -f 有或没有-s 只是调用unlink()。这可以在BusyBox sources (line 128) 中方便地看到,而在GNU coreutils 中则更加模糊。
【讨论】: