C#有没有比FileInfo.Length更快的方法来比较多个文件?

C#有没有比FileInfo.Length更快的方法来比较多个文件?,c#,fileinfo,C#,Fileinfo,我一直在尝试比较来自两个不同环境的文件。这两种环境都可以通过网络驱动器访问 首先,我检查了文件是否在两个环境中都存在(以节省时间),然后我要求提供两个文件的FileInfo来比较它们的文件大小(FileInfo.Length) 我的目标是用每个大小不相同的文件填充listview,以便以后对其进行研究 我发现很难理解windows资源管理器如此快速地获取大量文件的文件大小,而FileInfo花费了如此长的时间 谢谢。 Ben如果使用DirectoryInfo.GetFiles(某些搜索模式)获取

我一直在尝试比较来自两个不同环境的文件。这两种环境都可以通过网络驱动器访问

首先,我检查了文件是否在两个环境中都存在(以节省时间),然后我要求提供两个文件的FileInfo来比较它们的文件大小(FileInfo.Length)

我的目标是用每个大小不相同的文件填充listview,以便以后对其进行研究

我发现很难理解windows资源管理器如此快速地获取大量文件的文件大小,而FileInfo花费了如此长的时间

谢谢。
Ben

如果使用DirectoryInfo.GetFiles(某些搜索模式)获取文件,然后使用从该调用返回的FileInfo实例,那么将从搜索中缓存FileInfo.Length属性


这是否会有任何帮助,显然取决于搜索与您当前执行的检查相比的执行情况(如果搜索速度较慢,您可能什么也得不到)。不过,这可能值得研究

如果使用DirectoryInfo.GetFiles(某些搜索模式)获取文件,然后使用该调用返回的FileInfo实例,则将从搜索中缓存属性FileInfo.Length


这是否会有任何帮助,显然取决于搜索与您当前执行的检查相比的执行情况(如果搜索速度较慢,您可能什么也得不到)。不过,这可能值得研究

你可以试着用操作系统的方式来做。您可以通过win32系统调用进行调用。你可以从这个页面开始


您可以尝试用操作系统的方式来做。您可以通过win32系统调用进行调用。你可以从这个页面开始


我从没想过DirectoryInfo会提供这种类型的信息。。。我一直认为它只与目录相关,与文件无关。我在每个文件上使用了Directory.GetFiles()后跟多个FileInfo。。。非常感谢,这样做非常简单。令人惊讶的是,就在我从DirectoryInfo.GetFiles()收到我的FileInfo[]myFileInfo之后,我正在做一个foreach(FileInfo f in myFileInfo),所花的时间与以前相同。看起来返回值FileInfo[]并没有全部加载到内存中…我从没想过DirectoryInfo会提供这种类型的信息。。。我一直认为它只与目录相关,与文件无关。我在每个文件上使用了Directory.GetFiles()后跟多个FileInfo。。。非常感谢,这样做非常简单。令人惊讶的是,就在我从DirectoryInfo.GetFiles()收到我的FileInfo[]myFileInfo之后,我正在做一个foreach(FileInfo f in myFileInfo),所花的时间与以前相同。返回值FileInfo[]似乎未全部加载到内存中。。。