2009-02-18 56 views
0

我试图查询远程计算机上的文件系统,以获取特定目录中的文件名列表。如何快速查询文件系统?

到现在为止,我在.NET中使用DirectoryInfo类。类似这样的:

DirectoryInfo dir = new DirectoryInfo("c:\dir"); 
FileInfo[] files = dir.GetFiles("*.*"); 

但是这个查询的平均响应时间为20/30秒。有时持续50秒。这很重要。我想优化它。经过一些Google搜索后,我发现这可以通过WMI完成。但我没有取得任何成功。我遇到了类似“RPC服务器不可用”的错误,并且我无权访问该计算机中的权限或服务。

有没有人有任何其他的想法?

回答

0

通过网络不会获得更快的性能。您正在对抗网络延迟以及影响远程机器性能的任何事情(例如,磁盘IO或高CPU使用率)。

+0

除非它是一个只占几秒钟的非常大的文件夹:肯定少于10个,而不是他正在抱怨的20-30个。如果它是一个非常大的文件夹,那么也许。 – 2009-02-18 17:05:26

+0

问题不在网络中。像Joel说这是一个非常大的文件夹,并且该机器由Web服务重载,该服务返回特定目录的文件名。我想优化Web服务(它不在同一台机器上的文件),当它查询文件系统 – rguerreiro 2009-02-18 17:12:50

0

在远程机器上运行的WCF服务如何?这可能会接受请求,然后使用文件夹和文件的对象图返回批量数据传输对象。

我很欣赏这可能不适合您的架构,但是如果您对这两种环境都有控制权,那么它可能是一种前进的方式?