我需要阅读(简单且已经完成)和psrse $ MFT - 收集文件$ DATA运行和文件名,时间戳等等。 我已经开始使用this ntfs库了,但扫描整个mft的速度太慢了。
谢谢,但是请您解释一下为什么以下代码非常慢:
for (ULONG64 i = 0;i < kz;i++)
{
FileRecordHeader = (FILE_RECORD_HEADER*) &buf[bzp];
if (FileRecordHeader->Magic != FILE_RECORD_MAGIC)
{
goto pd;
}
usnaddr = (WORD*)((BYTE*)FileRecordHeader + FileRecordHeader->OffsetOfUS);
usn = *usnaddr;
usarray = usnaddr + 1;
if (!PatchUS((WORD*)FileRecordHeader, rzf / vl->SectorSize, usn, usarray))
{
goto pd;
}
//ParseAttrs(FileRecordHeader,MASK_FILE_NAME,Attrs,&file);
Application::DoEvents();
progressBar1->Value = i;pd:
bzp = bzp + rzf;
}
或只是枚举文件引用并不快。 我只需要枚举mft,但这个代码需要几分钟,这可以在大约20秒内完成(22 gb prtition - 更大尺寸 - 更慢)
答案 0 :(得分:0)
答案 1 :(得分:0)
它与解析无关。由于Application::DoEvents();
,您的代码很慢。