我有一个C ++ programfind来删除硬盘上的文件。所以程序从分区的开头开始读取,每当它看到有效的签名时,它就会读取它,并根据文件的类型找到文件大小。
然后它将文件的起始大小和偏移量保存到数据库中。 现在我想要的是在这个过程完成后将文件提供给一些分析器!
我现在正在做的是将文件恢复到硬盘然后将其地址提供给分析仪。但它太长了。
我想通过虚拟文件系统将这些文件加载到RAM中,它获取文件地址偏移量和文件大小,然后给出一个虚拟地址,分析器可以通过fopen()
读取该文件并且它会变得更快但是我不想在分区上写文件。
实际上,文件已经存在于分区中,但不存在于文件系统表中。
这种方式有解决方案吗?
答案 0 :(得分:0)
这是一个你必须知道的简单技巧。如您所知,调用CreateFile
,但通过FILE_ATTRIBUTE_TEMPORARY
。这是一个强大的提示,Windows将文件保存在RAM中,因为您打算在使用后立即将其删除。
您也可以通过FILE_FLAG_DELETE_ON_CLOSE
让自己更轻松。