2017-12-18 13 views
0

Qtを使用してシンボリックリンクの内容を変更することはできますか?シンボリックリンクのターゲットを削除せずに変更

スタティックQFile::linkと非スタティックの両方が、リンク名ファイルパスがすでに存在する場合は、falseを返します。

シンボリックリンクのターゲットを変更したいだけです。 ln -sfのアナログですが、クロスプラットフォームです。

答えて

1

短い答え:docsを引用する第

この機能は、ファイルシステム内の既存のエンティティを上書きしません。この場合、link()はfalseを返し、error()を設定してRenameErrorを返します。

解決策はかなり簡単です。まず、明示的にリンクを削除します。 g。 QFile::remove()にリンクを使用して、ターゲットファイルにQFile::link()を使用してください。

-sの有無にかかわらず、unlink()を呼び出す以外に何も実行していません。これはBusyBox sources (line 128)で便利に見ることができますが、GNU coreutilsでは少し難解です。

+0

これは何ですか、トリックの質問を認識できるかどうかのテストですか?あなたがすでにその答えを知っていて、その後の読者が知ることが重要であると思うなら、補完的な答えを書かないのはなぜですか?他の人に答えさせたい場合は、その点を質問に追加するか、新しい点を作成してください。 – Murphy

関連する問題