在Linux中使用c++将文件移动到垃圾桶

Moving files to Trash Can in Linux using C++

本文关键字:文件 移动 垃圾桶 c++ Linux      更新时间:2023-10-16

我试图移动(删除)一个文件到垃圾桶(在Linux中)使用c++(也使用QT4 GUI)。不幸的是,这似乎很难做到这一点,据我所知,没有一个统一的API。

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

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

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

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

如果有任何帮助,我将不胜感激。

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

这个可能(我还没有测试过)是Linux中通过终端将文件移动到回收站的一个可能的一行代码。您只需将命令作为带引号的字符串传递给system(),并在c++实现中调用它。

答案在

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

每个用户必须有一个"家庭垃圾"目录。它的名称和位置是$XDG_DATA_HOME/Trash

你只需要写c++代码把你的文件移到这个目录下。

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

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