13

我正在尝试使用 C++(也将 QT4 用于 GUI)将文件移动(删除)到垃圾箱(在 Linux 中)。不幸的是,这样做似乎很困难,据我所知,没有统一的 API。

我希望我的应用程序不仅可以在 KDE 上运行,而且可以在 GNOME、Xfce 和其他 Linux 桌面环境上运行。这就是为什么我正在寻找一种更通用的方法。

到目前为止我能找到的最好的是:

  • send2trash - 但这是使用 Python/QT4 而不是 C++/QT4
  • 垃圾cli - 它的缺点是它是一个独立的命令行程序而不是一个库

我会对任何需要尽可能少的桌面环境特定代码的方法感到满意。或者换句话说,它尽可能地独立于 KDE/GNOME/Xfce 组件。

任何帮助寻找解决方案(如果有的话)将不胜感激。

4

3 回答 3

1

答案在

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

必须为每个用户提供一个“家庭垃圾”目录。它的名称和位置是 $XDG_DATA_HOME/Trash

您只需要编写 C++ 代码将您的文件移动到这样的目录中。

您可以使用boost 文件系统移动文件,也可以使用cstlib getenv检索 XDG_DATA_HOME 值。

于 2011-07-24T15:06:18.457 回答
1

为什么不找到一个终端命令来移动文件,然后调用system()在你的 C++ 程序中为你运行它呢?

可能(我还没有测试过)是 Linux 中通过终端将文件移动到垃圾箱的一种可能的单行方式。您只需将命令作为带引号的字符串传递给system()并在您的 C++ 实现中调用它。

于 2011-07-22T16:02:05.197 回答
0

据我所知,Linux 一开始就没有标准的垃圾桶。

于 2011-07-21T13:08:26.353 回答