ntfs-mft

    0热度

    1回答

    我正在一个项目中工作,在这个项目中,我必须枚举驱动器中的文件名。我尝试了两种方法 MFT解析和 用多用FindFirstFile线程。我比较了这两种实现的执行时间,并且它显示的执行时间越短,MFT的执行速度就越快,如果MFT的大小超过了GB,则需要更多时间才能执行。 我的意见是: 卷C:MFT 1.85 GB EXE时间:65秒以上的线程核心量:9秒 卷d:MFT大小:38 MB的exe时间:0.

    5热度

    1回答

    在我的C#应用​​程序中,我已经有一种方法来检查文件系统,但是我想利用从主文件表(MFT)读取的优势,因为它速度快得多。我明白1)它是专有规范,因此如有更改,恕不另行通知; 2)只有当应用程序在管理权限下运行时才可以访问。 我设法通过this code读取主文件表。从MFT查询中,我得到一个文件名和一个所谓的文件引用号。我无法找到的是如何转换为.NET FileInfo对象,甚至转换为Window

    1热度

    1回答

    我一直致力于从MFT检索文件信息。我看到MFT记录有关于标准信息,文件名,数据和其他一些属性的信息。我试着解析MFT记录以获取它包含的所有细节。我能够获取所有文件的文件名,数据(包括备用数据流的数据),但我无法获取指定备用数据流的文件名。为了测试目的,我创建了一个包含两个包含数据的备用流的文件。当我解析对应于该文件的MFT记录时,我无法识别备用流名称。这是否意味着备用流名称不存储在MFT中?那么一

    0热度

    1回答

    编写解析器文件系统NTFS。我需要持续阅读目录并显示有关所选目录内容的信息,这只需要阅读有关文件和子目录的信息的MFT记录。问题:如何组织它? MFT中是否有任何内容记录了其他MFT记录文件和子目录的链接列表?

    0热度

    1回答

    我正在玩MFT,通过使用P/Invoke调用读取C:驱动器的根目录开始。使用下面的代码,如果缓冲区大小是512的倍数,我会得到预期的结果,否则读取将失败并显示ERROR_INVALID_PARAMETER。这是否与群集大小有关?这似乎不太可能,因为我拥有4k字节的簇大小。显然,我可以使用512的倍数,但在我看来,这可能不是可移植的,当然我想明白为什么会这样。 public void Test()

    0热度

    1回答

    我开始研究文件系统,特别是FAT *和NTFS。 在FAT文件系统群集中可能是数据或目录群集,并且始终知道根目录的起始群集编号,因为在FAT32之前它已在格式化时间固定,并且在扩展BIOS中找到FAT32阻止引导扇区。 NTFS在另一方面组织主文件表下的所有内容,并为系统中的每个文件和目录提供MFT记录。 主文件表的第一个第27个位置标记为保留,第一个索引由$ MFT记录组成,该记录描述了MFT本

    0热度

    1回答

    我想知道是否处处找到FF FF FF FF它表示一个MFT块。因为here他们说: 你可以很清楚地看到文件标记的0xFFFFFFFF的结束将标记 新的MFT项的末尾(字节偏移量504)。

    0热度

    1回答

    为了缩短冗长的故事:我克隆了一个损坏的NTFS硬盘(损坏的$ MFT根条目)并启动到我的本机窗口中以执行chkdsk运行。 在启动时,Windows执行了不需要的chkdsk运行。 chkdsk运行通过相当成功。不幸的是,chkdsk日志似乎不完整。 get-winevent -FilterHashTable @{logname="Application"; id="1001"}| ?{$_.pr

    0热度

    2回答

    假设可以实际打开和读取NTFS卷上的目录。但是,我的代码尝试这是不工作,所以我试图谷歌,它发现我this。 这里的关键观察似乎是您必须使用FILE_FLAG_BACKUP_SEMANTICS。所以,调整下来,我基本上得到: HANDLE hFile = CreateFile(L"C:\\temp", GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXIST

    0热度

    1回答

    我想将大文件分割成小文件而不复制文件的一部分,并且不使用文件流或使用它的函数(如果可能的话)。 试想一下,我们这是由3个文件,大文件: [[File1bytes][File2bytes][File3bytes]] 在我看来,我们可以通过以下步骤做到这一点: 使用SetEndOfFile函数截断最后的字节文件([File3bytes]在我们的例子) 不知怎的,迫使我们的文件系统来识别那些截字节(