我目前正在使用FindFirstFile,FindNextFile APIrecursion迭代通过目录search基于给定条件的文件。 我注意到“dir / s”命令比我的程序有更好的性能。 我试图检查进程监视器中的事件,它看起来像cmd.exe / dir命令是直接查询磁盘设备驱动程序。 有什么办法可以实现一些与DeviceIOControl()类似的东西? 我对设备驱动程序非常陌生,尽pipe对编程并不陌生。 连接procmon输出以供参考:
问候,
为什么不能通过inode操作文件?
最小的fat32分区
我怎样才能recursion复制一个目录到另一个只replace没有改变的文件?
以编程方式检测共享驱动器是在UNIX还是在Windows操作系统上
在linux中列出目录时无限recursion
Linux:大型int数组:mmap vs查找文件?
你可以直接调用ZwQueryDirectoryFile 。 进一步下到驱动程序级别将需要发送一堆IRP,可能会是一个矫枉过正。
使用FindFirstFile和FindNextFile 。 这是API,直接使用DeviceIOControl是一个混乱或不可能(不完全知道)。
你试过FindFirstFileEx ,它的FIND_FirsT_EX_LARGE_FETCH标志和FindExInfoBasic信息级别?
“dir / s”正在使用FindFirst / Next。 枚举文件并没有什么特别的魔力。
QueryDirectory似乎是Procmon如何公开FindFirst / Next从文件系统中获取数据的功能。
http://ntfs-search.sourceforge.net/
它运作良好。 而且更快。
它打开一个卷,并直接解析。
但它只适用于NTFS。
剖析你的应用程序,你的瓶颈很可能会在其他地方。 其中一些选项就像拿出一支猎枪来拍摄一只苍蝇。
斯科特
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。