13

C++ を使用して (GUI に QT4 も使用して) ファイルをゴミ箱 (Linux) に移動 (削除) しようとしています。残念ながら、そうするのは非常に難しいようで、私が知る限り、そのための統一された API はありません。

アプリケーションを KDE だけでなく、GNOME、Xfce、およびその他の Linux デスクトップ環境でも実行したいと考えています。だからこそ、私はより普遍的なアプローチを模索しています。

これまでに見つけた最高のものは次のとおりです。

  • send2trash - ただし、C++/QT4 ではなく Python/QT4 を使用しています
  • Trash-cli - これには、スタンドアロンのコマンド ライン プログラムであり、ライブラリではないという欠点があります。

デスクトップ環境固有のコードをできるだけ少なくする必要があるアプローチには満足しています。つまり、KDE/GNOME/Xfce コンポーネントから可能な限り独立しています。

解決策を見つけるための助けがあれば(もしあれば)、大歓迎です。

4

3 に答える 3

1

ファイルを移動するターミナルコマンドを見つけてから、 system()を呼び出してC ++プログラム内で実行してみませんか?

これ (私はテストしていませんが)Linuxでターミナルを介してファイルをゴミ箱に移動するためのワンライナーの可能性があります。コマンドを引用符で囲まれた文字列としてに渡し、system()C++実装で呼び出すだけです。

于 2011-07-22T16:02:05.197 に答える
1

答えは

http://www.freedesktop.org/wiki/Specifications/trash-spec

すべてのユーザーに対して、「ホーム ゴミ箱」ディレクトリが利用可能でなければなりません。その名前と場所は $XDG_DATA_HOME/Trash です

C++ コードを記述して、ファイルをそのようなディレクトリに移動するだけです。

ブースト ファイル システムを使用してファイルを移動でき、 cstlib getenvを使用して XDG_DATA_HOME 値を取得できます。

于 2011-07-24T15:06:18.457 に答える
0

私の知る限り、そもそも Linux には標準のゴミ箱はありません。

于 2011-07-21T13:08:26.353 に答える