快速$ MFT解析 - 库

时间:2010-09-22 09:47:45

标签: c++

我需要阅读(简单且已经完成)和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 - 更大尺寸 - 更慢)

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

它与解析无关。由于Application::DoEvents();,您的代码很慢。