我可以在文件上排队删除吗?

时间:2013-11-30 00:35:21

标签: c++ c qt

我在内存中有代表图像的数据。我想在默认程序中打开图像以打开图像。因此,我创建一个临时文件,将数据写入其中,然后使用默认应用程序打开该文件。目前,我正在使用Qt通过QDesktopServices::openUrl ( const QUrl & url )执行最后一步。问题是我现在将这个随机文件放在磁盘上。有没有办法让我可以对文件进行排队,以便在应用程序关闭后将其删除?

就操作系统而言,我更喜欢独立于操作系统的解决方案,但我猜测没有可能存在。因此,如果您可以链接到/发布如何在linux / osx / windows中执行此操作,那将非常有用。

1 个答案:

答案 0 :(得分:1)

在POSIX系统(任何Unix或Linux机器)上,您可以利用一个很好的技巧:打开文件后,可以使用unlink删除文件的目录条目。只要您在文件上保留一个打开的文件句柄,它就不会被删除,但是一旦关闭它,文件系统就会自动回收存储。