-1

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

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

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

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

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

这种方式有什么解决方案吗?

4

1 回答 1

0

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

你也可以通过FILE_FLAG_DELETE_ON_CLOSE让自己的事情变得更容易。

于 2017-11-14T12:13:50.927 回答