如何在窗口

时间:2017-11-14 07:38:53

标签: c++ windows memory-mapped-files memory-mapping virtualfilesystem

我有一个C ++ programfind来删除硬盘上的文件。所以程序从分区的开头开始读取,每当它看到有效的签名时,它就会读取它,并根据文件的类型找到文件大小。

然后它将文件的起始大小和偏移量保存到数据库中。 现在我想要的是在这个过程完成后将文件提供给一些分析器!

我现在正在做的是将文件恢复到硬盘然后将其地址提供给分析仪。但它太长了。

我想通过虚拟文件系统将这些文件加载​​到RAM中,它获取文件地址偏移量和文件大小,然后给出一个虚拟地址,分析器可以通过fopen()读取该文件并且它会变得更快但是我不想在分区上写文件。

实际上,文件已经存在于分区中,但不存在于文件系统表中。

这种方式有解决方案吗?

1 个答案:

答案 0 :(得分:0)

这是一个你必须知道的简单技巧。如您所知,调用CreateFile,但通过FILE_ATTRIBUTE_TEMPORARY。这是一个强大的提示,Windows将文件保存在RAM中,因为您打算在使用后立即将其删除。

您也可以通过FILE_FLAG_DELETE_ON_CLOSE让自己更轻松。