将文件移动到垃圾箱的C代码

时间:2014-04-09 11:59:04

标签: c

我试图删除C程序中的文件,但是当我使用remove()函数时,它会完全删除文件而不将其发送到垃圾箱。如何将文件删除到垃圾箱?

提前致谢!

5 个答案:

答案 0 :(得分:0)

对于Windows,请SHFileOperationFOF_ALLOWUNDO一起使用。

http://msdn.microsoft.com/en-us/library/bb762164.aspx

在Mac OS X上,您必须从FSMoveObjectToTrashSync致电CoreServices(或其异步朋友)。

答案 1 :(得分:0)

在linux中我会做...

system("mv your_file.txt /home/username/.local/share/Trash/");

答案 2 :(得分:0)

在Mac OS上,您应该使用NSWorkspace中的recycleURLs:completionHandler:方法。

答案 3 :(得分:0)

我知道这是一个古老的问题,但是自发布以来,还存在其他解决方案。

几乎每个操作系统都提供了一个API,可以通过将文件移至回收站来执行软删除。不幸的是,没有统一的规范来说明垃圾箱/回收箱的工作方式。在Windows上,您可以使用IFileOperation,macOS具有NSFileManager,在Linux和BSD上,您可以使用实现FreeDesktop.org trash specification的工具,例如gio trash(GNOME),{{ 1}}(KDE),kioclient5 move或自己实现。

另一种解决方案是使用跨平台库,该库允许将文件和目录移动到libtrashcan之类的垃圾箱/回收箱中。因为您只使用一个函数调用,而不必担心平台特定的细节,所以这简化了开发。

答案 4 :(得分:-1)

如果你在Windows上试试这个。

打开命令提示符(DOS窗口)并键入

cd \$RECYCLE.BIN
dir \a

您将获得计算机中所有用户的所有垃圾清单。

在您的程序中将文件移动到正确的垃圾箱。