2017-12-18 215 views
0

是否可以使用Qt更改符號鏈接的內容?更改符號鏈接的目標而不刪除

靜態的QFile::link和非靜態的都返回false如果鏈接名文件路徑已經存在。

我只想重定義符號鏈接。 ln -sf的模擬,但跨平臺。

回答

1

簡短的回答:第

引述docs

此功能將不會覆蓋在文件系統中已存在的實體;在這種情況下,link()將返回false並將error()設置爲返回RenameError。

該解決方案相當簡單:首先明確刪除鏈接,例如, G。在上使用QFile::remove()鏈接,然後使用QFile::link()作爲目標文件(就像您已經做過的那樣)。

順便說一句,ln -f有沒有-s除了調用unlink()什麼也沒做。這可以方便地在BusyBox sources (line 128)中看到,而在GNU coreutils中則更加混淆。

+0

這是什麼,測試我是否能夠識別技巧問題?如果你已經知道答案,並認爲對後續讀者來說很重要,你爲什麼不寫出自己的補充答案?如果你想要其他人回答它,你應該在你的問題中加上這一點,或者更好地創建一個新問題。 – Murphy