У меня есть программа C ++ для поиска файлов на жестком диске. Таким образом, программа начинает чтение с начала раздела, и всякий раз, когда она видит действительную подпись, она читает ее и находит размер файла в соответствии с типом файла.
Затем он сохраняет начальный размер и смещение файла в базе данных.
Теперь я хочу передать файлы некоторым анализаторам после завершения этого процесса!
Сейчас я делаю восстановление файлов на жесткий диск, а затем передаю их адреса анализатору. Но это слишком долго.
Я хочу загрузить эти файлы в ОЗУ с помощью виртуальной файловой системы, чтобы получить смещение адреса файла и размер файла, а затем дать виртуальный адрес, чтобы анализаторы могли прочитать эти файлы fopen()
и это становится быстрее, но я не хочу писать файлы на раздел.
Фактически файлы существовали в разделе, но не в таблице файловой системы.
Есть ли решение для этого пути?
Есть простой трюк, который вы должны знать. Вызов CreateFile
как вы знаете, но пройти FILE_ATTRIBUTE_TEMPORARY
, Это сильный совет для Windows, чтобы сохранить файл в оперативной памяти, так как вы намерены удалить его сразу после использования.
Вы также можете пройти FILE_FLAG_DELETE_ON_CLOSE
сделать вещи проще для себя.
Других решений пока нет …