gpt4 book ai didi

c++ - 高效删除文件 Windows C++

转载 作者:太空宇宙 更新时间:2023-11-04 14:48:54 25 4
gpt4 key购买 nike

我有一个长时间运行的进程,它创建一个小图像(~1-2 kb)并将其加载到内存中。因为它是使用 APK 创建的,所以我必须在将其加载到内存之前将其保存到文件中。那时我不再需要该文件。该过程可能会创建数百万个此类文件。

我正在使用 Visual C++.NET,这是一个基于 Windows 的应用程序。我想知道解决此问题的最佳方法。

我可以通过调用 DeleteFile ( http://msdn.microsoft.com/en-us/library/aa363915(v=vs.85).aspx ) 删除它们,但我想知道该操作是否有开销,我是否应该使用通配符和命名约定每 10k 或 100k 文件执行一次。

这样做值得吗?这里的权衡是什么?

最佳答案

使用 FILE_ATTRIBUTE_TEMPORARYFILE_FLAG_DELETE_ON_CLOSE。它们一起告诉 Windows 您打算如何使用此文件。

这种组合意味着 Windows 会将文件保存在文件缓存中,直到您关闭它的句柄,此时它会从内存中删除。您甚至不需要 DeleteFile!由于所有语义仍然是普通文件的语义,因此您无需更改任何其他内容。

关于c++ - 高效删除文件 Windows C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22753183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com