0
Qt
を使用してシンボリックリンクの内容を変更することはできますか?シンボリックリンクのターゲットを削除せずに変更
スタティックQFile::link
と非スタティックの両方が、リンク名ファイルパスがすでに存在する場合は、false
を返します。
シンボリックリンクのターゲットを変更したいだけです。 ln -sf
のアナログですが、クロスプラットフォームです。
Qt
を使用してシンボリックリンクの内容を変更することはできますか?シンボリックリンクのターゲットを削除せずに変更
スタティックQFile::link
と非スタティックの両方が、リンク名ファイルパスがすでに存在する場合は、false
を返します。
シンボリックリンクのターゲットを変更したいだけです。 ln -sf
のアナログですが、クロスプラットフォームです。
短い答え:docsを引用する第
:
この機能は、ファイルシステム内の既存のエンティティを上書きしません。この場合、link()はfalseを返し、error()を設定してRenameErrorを返します。
解決策はかなり簡単です。まず、明示的にリンクを削除します。 g。 QFile::remove()
をにリンクを使用して、ターゲットファイルにQFile::link()
を使用してください。
-s
の有無にかかわらず、unlink()
を呼び出す以外に何も実行していません。これはBusyBox sources (line 128)で便利に見ることができますが、GNU coreutilsでは少し難解です。
これは何ですか、トリックの質問を認識できるかどうかのテストですか?あなたがすでにその答えを知っていて、その後の読者が知ることが重要であると思うなら、補完的な答えを書かないのはなぜですか?他の人に答えさせたい場合は、その点を質問に追加するか、新しい点を作成してください。 – Murphy