使用C ++将文件移动到Linux中的垃圾桶

时间:2011-07-21 13:03:10

标签: c++ linux recycle recycle-bin

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

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

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

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

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

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

3 个答案:

答案 0 :(得分:1)

答案在

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

  

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

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

您可以使用boost file system移动文件,并可以使用cstlib getenv检索XDG_DATA_HOME值。

答案 1 :(得分:0)

据我所知,Linux中没有标准的垃圾桶。

答案 2 :(得分:0)

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

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