2009-02-18 133 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服務如何?這可能會接受請求,然後使用文件夾和文件的對象圖返回批量數據傳輸對象。

我很欣賞這可能不適合您的架構,但是如果您對這兩種環境都有控制權,那麼它可能是一種前進的方式?