微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法从NTFS卷的MFT获取文件名/位置信息?

我需要获取驱动器上所有文件的列表。 我正在使用recursion解决scheme。 但是这花了很多时间。 我想知道,是否有可能从它的主文件表中获取NTFS驱动器上的所有文件名称和位置? 我认为这将是非常快的。 有什么build议么?

在Linux中的特定块上打开文件

寻找单位/集成testing的文件夹比较实用程序

ctime总是<= mtime?

为什么Windows需要为`file_get_contents`命名`utf8_decode`文件名?

在CentOS上永久和安全地删除文件

当您使用递归解决方获取NTFS格式化驱动器上所有文件的列表时,您将从MFT获取它们。 简单地检索文件名和目录列表时,MFT之外应该有小磁盘IO。

在确定MFT格式(可以从互联网上的各种地方获得)以及编写代码直接读取它的格式之前,您应该对您的代码进行剖析,并确定您不是cpu或IO界。

一个工具可以直接搜索mft,叫做ndff。 我以前用过,速度非常快。

大概有可能做你想做的事 – 还有另外一个叫做“Everything”的工具,我猜也是一样的 – 它也使用USN更改日志来更新它的索引。

我有一个印象,你正在想象MFT中的某种类似于列表的结构,你可以一眼就读完,而且没有或者很少寻找。

不是这种情况。 MFT使用一种b-tree来存储路径名。 当你扫描磁盘上的目录结构时,实际上你正在走MFT B-树; 你正在做什么,如果你直接访问MFT你将不得不做的。

是的,我刚刚开源的程序就是这样做的。

您可以阅读源代码以了解其工作原理,但基本上,它只是在$ MFT中查找FILE_NAME属性 ,然后使用ParentDirectory字段获取每个文件的父项。

这样可以完全避免读取任何目录的内容

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐