【问题标题】:Change target of symlink without deletion更改符号链接的目标而不删除
【发布时间】:2017-12-18 11:01:40
【问题描述】:

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

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

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

【问题讨论】:

    标签: qt symlink qfile qfileinfo


    【解决方案1】:

    简短回答:不。

    引用docs

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

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

    顺便说一句,ln -f 有或没有-s 只是调用unlink()。这可以在BusyBox sources (line 128) 中方便地看到,而在GNU coreutils 中则更加模糊。

    【讨论】:

    • 这是什么,测试我是否能够识别技巧问题?如果您已经知道答案,并且认为后续读者知道这一点很重要,那您为什么不编写自己的补充答案呢?如果您希望其他人回答它,您应该在您的问题中添加这一点,或者更好地创建一个新问题。
    猜你喜欢
    • 1970-01-01
    • 2010-09-17
    • 2012-07-03
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    • 2018-12-27
    • 2018-05-14
    • 1970-01-01
    相关资源
    最近更新 更多