gpt4 book ai didi

c# - 有没有办法通过 SMB 共享上的创建时间来枚举文件?

转载 作者:行者123 更新时间:2023-12-02 11:22:32 27 4
gpt4 key购买 nike

我正在寻找一种在 SMB 远程共享上检索比某个日期/时间更新的文件的方法,所有这些都在 Windows 下工作。我一直在使用DirectoryInfo.EnumerateFiles() ,并在返回时进行过滤。不幸的是,这意味着在我查看之前,每个文件记录都已通过网络发送,并且随着文件列表的增长,情况会变得越来越糟。
我一直在与第三方供应商合作,因此我无法选择删除旧文件,也无法在正在读取的文件服务器上运行任何代码。
我已经能够通过 p/invoking FindFirstFileEx 获得一些暂时的改进。/FindNextFile并使用 FindExInfoBasicFIND_FIRST_EX_LARGE_FETCH标志,但理想情况下,我想将日期时间过滤器卸载到服务器,并且只通过网络发送我需要的文件记录。是否有一些我只是没有发现可以提供帮助的 API?

最佳答案

SMB 协议(protocol)本身允许创建 SMB2 QUERY_DIRECTORY Request得到回答 SMB2 QUERY_DIRECTORY Response .根据 SMB 协议(protocol)规范,您应该能够获取目录的文件列表,其中仅包含您需要的最少信息集(“FileInformationClass”)并以大块的形式传输它们。
为了了解如何实现它,我将查看 SharpCifs.Std 的源代码.

关于c# - 有没有办法通过 SMB 共享上的创建时间来枚举文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63141650/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com